
Sora Fujimoto
AI Solutions Architect

AIエージェントが説明責任調査、リードの詳細化、コンプライアンスチェックを行うには、政府の企業登録データベースからの構造化された企業データが必要です。これは、設立詳細、役員名、提出状況、登録住所などを含みます。これらの登録データベースは自動検証ワークフローをブロックするCAPTCHA保護を導入しています。このガイドでは、AIエージェントがCapSolverを使用して、州、連邦、国際的な企業データベースへのアクセスを維持するためのビジネス登録データ抽出パイプラインの構築方法を説明します。
企業登録データベースは、企業確認の権威的なソースです。AIエージェントが企業が存在するか確認し、現在の状況を確認し、役員を特定し、登録住所を確認する必要がある場合、これらの政府データベースに照会します。問題は、ほぼすべての企業登録データベースが一括自動アクセスを防止するためにCAPTCHA保護を導入していることです。
これは、AIエージェントにとってボトルネックとなります:
SEC EDGAR、州のSecretary of Stateデータベース、英国のCompanies House、EUの企業登録所などはすべて検証チャレンジを導入しています。自動解決がなければ、AIエージェントが1日で100社の確認を行う場合、30〜50回の手動CAPTCHA介入を経る必要があります。これにより、自律的な運用は不可能になります。
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install aiohttp beautifulsoup4 pandas
export CAPSOLVER_API_KEY="your-capsolver-api-key"
追加の要件:
BUSINESS_REGISTRIES = {
"delaware_sos": {
"name": "デラウェア州 Secretary of State",
"url": "https://icis.corp.delaware.gov",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"data": ["entity_name", "file_number", "status", "formation_date", "agent"]
},
"california_sos": {
"name": "カリフォルニア州 Secretary of State",
"url": "https://bizfileonline.sos.ca.gov",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"data": ["entity_name", "number", "status", "type", "jurisdiction", "agent"]
},
"uk_companies_house": {
"name": "英国 Companies House",
"url": "https://find-and-update.company-information.service.gov.uk",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"data": ["company_name", "number", "status", "type", "incorporated", "officers"]
},
"sec_edgar": {
"name": "SEC EDGAR",
"url": "https://www.sec.gov/cgi-bin/browse-edgar",
"captcha_type": "ImageToTextTask",
"data": ["company_name", "cik", "filings", "sic_code", "state"]
}
}
import asyncio
from capsolver_core import create_capsolver, CaptchaType, CaptchaInfo
class BusinessRegistryExtractor:
"""CAPTCHA処理を伴う政府登録データからビジネスデータを抽出します。"""
def __init__(self, api_key: str, proxies: list):
self.cap = create_capsolver(api_key=api_key)
self.proxies = proxies
self.proxy_idx = 0
async def verify_company(self, company_name: str, jurisdiction: str) -> dict:
"""特定の管轄区域の登録データベースで会社を確認します。"""
registry = BUSINESS_REGISTRIES.get(jurisdiction)
if not registry:
return {"error": f"サポートされていない管轄区域: {jurisdiction}"}
proxy = self.proxies[self.proxy_idx % len(self.proxies)]
self.proxy_idx += 1
# 登録データベースを検索
html = await self._search_registry(registry, company_name, proxy)
# CAPTCHAを処理
if self._is_captcha(html):
token = await self._solve(registry)
html = await self._retry_search(registry, company_name, proxy, token)
# 結果を解析
return self._parse_registry_result(html, registry)
async def _solve(self, registry: dict) -> str:
type_map = {
"ReCaptchaV2TaskProxyLess": CaptchaType.RECAPTCHA_V2,
"ImageToTextTask": CaptchaType.RECAPTCHA_V2 # 異なる処理
}
info = CaptchaInfo(
type=type_map[registry["captcha_type"]],
website_url=registry["url"],
website_key=registry.get("site_key", "")
)
solution = await self.cap.solve(info)
return solution.token
async def bulk_verify(self, companies: list, jurisdiction: str) -> list:
"""複数の会社を一括で確認します。"""
results = []
for company in companies:
result = await self.verify_company(company, jurisdiction)
results.append(result)
await asyncio.sleep(3) # レートリミットを尊重
return results
async def close(self):
await self.cap.aclose()
class CompanyVerificationAgent:
"""ビジネス確認ワークフロー用のAIエージェントレイヤー。"""
def __init__(self, extractor: BusinessRegistryExtractor):
self.extractor = extractor
async def full_verification(self, company_name: str) -> dict:
"""複数の登録機関で完全な確認を実行します。"""
results = {}
# 主な米国登録機関をチェック
for jurisdiction in ["delaware_sos", "california_sos"]:
result = await self.extractor.verify_company(company_name, jurisdiction)
if result.get("status") == "Active":
results["us_registration"] = result
break
# 公開企業用にSECをチェック
sec_result = await self.extractor.verify_company(company_name, "sec_edgar")
if sec_result.get("cik"):
results["sec_filing"] = sec_result
# 確認レポートをまとめます
return {
"company": company_name,
"verified": bool(results),
"registrations": results,
"verification_date": time.strftime("%Y-%m-%d")
}
| 検証ユースケース | チェックされた登録機関 | 各チェックのCAPTCHA数 | 会社あたりの時間 |
|---|---|---|---|
| 基本的な存在確認 | 1つの州登録機関 | 1 | 5〜15秒 |
| 複数管轄 | 3〜5つの登録機関 | 3〜5 | 20〜60秒 |
| 完全な説明責任調査 | 5〜8つの登録機関 + SEC | 5〜8 | 45〜120秒 |
| 大規模なリード詳細化 | 1つの登録機関ごとに | 1つごと | 各5〜10秒 |
| ボリューム | 月間確認数 | 月間CAPTCHA数 | 月間費用 |
|---|---|---|---|
| 小規模(1日50件) | 1,500 | ~1,500 | $3〜4.50 |
| 中規模(1日200件) | 6,000 | ~6,000 | $12〜18 |
| 大規模(1日1,000件) | 30,000 | ~30,000 | $60〜90 |
ボーナスコードを取得してください: CapSolverダッシュボードでコード WEBS を使用して、すべての充電に対して追加の5%のボーナスを取得してください。
CapSolverの責任ある利用に関するFAQには、追加のコンプライアンスガイドが記載されています。政府ポータルのreCAPTCHAの処理については、v2の解決ドキュメントに実装の詳細が記載されています。CapSolverのウェブスクレイピングガイドでは、高ボリュームデータ抽出のインフラパターンについてカバーしています。
AIエージェントのビジネス登録データ抽出には、複数の管轄区域の政府データベースで多様なCAPTCHAシステムを処理する必要があります。CapSolverは、スケールで自動化された会社照会を可能にする検証クリアインフラストラクチャを提供し、reCAPTCHAと画像CAPTCHAを3〜12秒で解決することで、AIエージェントが手動介入なしで企業を確認し、リードを詳細化し、コンプライアンスチェックを完了できるようにします。
標準的なCAPTCHAシステムを使用するすべての登録機関:米国州のSecretary of Stateデータベース(すべての50州)、SEC EDGAR、英国Companies House、EUの国家登録機関、およびほとんどの国際的な企業データベース。それぞれは特定のCAPTCHAパラメータの識別が必要です。
はい。ほとんどの登録機関は現在の役員、取締役、および登録代理店を公開しています。抽出エンジンはこれらのフィールドを解析し、会社の状態、設立日、提出履歴とともに抽出します。
一部の登録機関は詳細な検索に無料アカウントの作成が必要です。AIエージェントは初期設定後に認証されたセッションを維持できます。CAPTCHAはログインページと検索ページの両方で表示されるため、CapSolverは両方を処理します。
ほとんどの政府登録機関は公開された企業登録データへのアクセスを提供しています。大規模なアクセスポリシーは管轄区域によって異なります。一部は明示的に許可していますが、他の管轄区域はレートリミットを設けています。常に特定の登録機関の利用規約を確認し、尊重されたレートリミット(クエリ間の3〜5秒の遅延)を実装してください。