リードスクレイピング&検証
目標
Apify(code_crafter/leads-finder)を使ってリードをスクレイピングし、関連性(業界一致度 > 80%)を検証して、Googleスプレッドシートに保存します。大規模スクレイピング(1000件以上のリード)の場合は、並列スクレイピングを使用して3〜5倍の高速化を実現します。
入力
- 業種: 対象業種(例:「配管業者」、「ソフトウェアエージェンシー」)
- 地域: 対象地域(例:「テキサス州」、「アメリカ合衆国」、「カリフォルニア州」)。スクリプトは自動的にApifyの要求形式にフォーマットします(米国の州は自動的に「, us」サフィックスが付きます)。
- 総件数: 必要なリードの総数
スクリプト
すべてのスクリプトは./scripts/にあります:
scrape_apify.py- 単一スクレイピング(1000件未満用)scrape_apify_parallel.py- 並列スクレイピング(1000件以上用)classify_leads_llm.py- LLMベースのリード分類enrich_emails.py- AnyMailFinderによるメールエンリッチメントupdate_sheet.py- シートへの一括更新read_sheet.py- Googleスプレッドシートからのデータ読み込み
プロセス
小規模スクレイピング(1000件未満)
-
テストスクレイピング
python3 ./scripts/scrape_apify.py --query "業種" --location "地域" --max_items 25 --no-email-filter --output .tmp/test_leads.json -
検証
.tmp/test_leads.jsonを読み込む- 25件中少なくとも20件(80%)が業種に一致するか確認
- 合格: ステップ3へ進む
- 不合格: 停止し、ユーザーにキーワードの改善を依頼
-
本番スクレイピング
python3 ./scripts/scrape_apify.py --query "業種" --location "地域" --max_items 総件数 --no-email-filter --output .tmp/leads.json -
[オプション]LLM分類(複雑なニッチ向け)
python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json -
Googleスプレッドシートへのアップロード
python3 ./scripts/update_sheet.py .tmp/leads.json --title "リード - 業種" -
不足メールのエンリッチ
python3 ./scripts/enrich_emails.py スプレッドシートURL
大規模スクレイピング(1000件以上)
-
テストスクレイピング(上記と同じ、25件)
-
並列本番スクレイピング
python3 ./scripts/scrape_apify_parallel.py \ --query "業種" \ --total_count 4000 \ --location "アメリカ合衆国" \ --strategy regions \ --no-email-filter地理的パーティショニングは自動で行われます:
- アメリカ合衆国: 4分割(北東、南東、中西部、西部)
- EU/ヨーロッパ: 4分割(西部、南部、北部、東部)
- イギリス: 4分割(南東イングランド、北イングランド、スコットランド/ウェールズ、南西イングランド)
- カナダ: 4分割(オンタリオ、ケベック、西部、大西洋)
- オーストラリア: 4分割(NSW、VIC/TAS、QLD、WA/SA)
-
小規模スクレイピングのステップ4〜6を続行
出力
唯一の成果物はGoogleスプレッドシートのURLです。 .tmp/内のローカルJSONファイルは一時的な中間ファイルです。
エッジケース
- リードが見つからない場合: ユーザーに検索範囲を広げるよう依頼
- APIエラー:
.envの認証情報を確認 - 低品質な分類: 「不明」が80%を超える場合、スクレイピングキーワードを改善
環境
.envに以下が必要です:
APIFY_API_TOKEN=your_token
GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json
ANTHROPIC_API_KEY=your_key
ANYMAILFINDER_API_KEY=your_key
スキーマ
入力
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
industry | string | はい | 対象業種(例:「配管業者」、「ソフトウェアエージェンシー」) |
location | string | はい | 対象地域(例:「テキサス州」、「アメリカ合衆国」) |
total_count | integer | はい | 必要なリードの総数 |
classification_type | string | いいえ | LLM分類タイプ(例:「product_saas」) |
出力
| 名前 | 型 | 説明 |
|---|---|---|
sheet_url | string | スクレイピングしたリードを含むGoogleスプレッドシートのURL |
lead_count | integer | 見つかったリード数 |
認証情報
| 名前 | 取得元 |
|---|---|
APIFY_API_TOKEN | .env |
GOOGLE_APPLICATION_CREDENTIALS | .env |
ANTHROPIC_API_KEY | .env |
ANYMAILFINDER_API_KEY | .env |
連携可能なスキル
このスキルと連携してチェーンできるスキル:classify-leads、casualize-names、instantly-campaigns、onboarding-kickoff
コスト
リード1件あたり$0.01〜0.02 + 分類1,000件あたり$0.30