apify-scrapers について
Apify のアクターを使って、公開されているソーシャル、ビジネス、広告データを取得する Python スクリプトとガイド集です。調査担当者やマーケティングチーム向けに、プラットフォーム別の実行方法やトレンド分析、リード獲得、競合調査のワークフローを提供します。
主な機能
- 01ソーシャルプラットフォームの投稿やプロフィール取得
- 02Google Maps の事業者情報とレビュー収集
- 03ウェブサイトから連絡先情報を抽出
- 04競合広告の収集と比較
- 05複数ソースのトレンド分析
活用シーン
- 01特定トピックに関するソーシャル投稿の監視
- 02ビジネスリードの発見と連絡先情報の補完
- 03競合他社の広告活動の比較
- 04複数プラットフォームのトレンド発見と比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ casper-studios/ casper-marketplace --skill apify-scrapersインストール後、Claude Code で/apify-scrapersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/contact-enrichment.mdfacebook.mdgoogle-maps.mdinstagram.mdlinkedin.mdmulti-platform.mdreddit.mdtwitter.mdurl-detect.mdreferences/workflows/audience-analysis.mdcompetitor-ads.mdcompetitor-intel.mdinfluencer-discovery.mdlead-generation.mdtrend-analysis.mdscripts/analyze_audience.pyanalyze_trends.pydiscover_influencers.pyenrich_contacts.pyscrape_competitor_ads.pyscrape_content_by_url.pyscrape_facebook.pyscrape_google_maps.pyscrape_instagram.pyscrape_linkedin_posts.pyscrape_multi_platform.pyscrape_reddit_ai_tech.pyscrape_twitter_ai_trends.py詳細
Apify スクレイパー
概要
Apify アクターを使用して、主要なソーシャルプラットフォームのコンテンツをスクレイピングします。各プラットフォームには、コストと品質を最適化した設定があります。
クイック判断ツリー
What do you want to scrape?
│
├── Social Media Posts
│ ├── Twitter/X → references/twitter.md
│ │ └── Script: scripts/scrape_twitter_ai_trends.py
│ │
│ ├── Reddit → references/reddit.md
│ │ └── Script: scripts/scrape_reddit_ai_tech.py
│ │
│ ├── LinkedIn → references/linkedin.md
│ │ └── Script: scripts/scrape_linkedin_posts.py
│ │
│ ├── Instagram → references/instagram.md
│ │ └── Script: scripts/scrape_instagram.py
│ │ └── Modes: profile, posts, hashtag, reels, comments
│ │
│ ├── Facebook → references/facebook.md
│ │ └── Script: scripts/scrape_facebook.py
│ │ └── Modes: page, posts, reviews, groups, marketplace
│ │
│ ├── TikTok → references/multi-platform.md
│ │ └── Script: scripts/scrape_multi_platform.py
│ │
│ └── YouTube → references/multi-platform.md
│ └── Script: scripts/scrape_multi_platform.py
│
├── Business/Places
│ ├── Google Maps businesses → references/google-maps.md
│ │ └── Script: scripts/scrape_google_maps.py
│ │ └── Modes: search, place, reviews
│ │
│ └── Contact info from websites → references/contact-enrichment.md
│ └── Script: scripts/scrape_contact_info.py
│ └── Extract: emails, phone numbers, social profiles
│
├── Auto-detect URL type → references/url-detect.md
│ └── Script: scripts/scrape_content_by_url.py
│
├── Trend Analysis (NEW)
│ └── Enriched trend analysis → workflows/trend-analysis.md
│ └── Script: scripts/analyze_trends.py
│ └── Features: velocity scoring, lifecycle staging, opportunity scoring
│
└── Workflows (multi-step)
├── Lead generation → workflows/lead-generation.md
├── Influencer discovery → workflows/influencer-discovery.md
├── Competitor analysis → workflows/competitor-intel.md
├── Trend analysis → workflows/trend-analysis.md
└── Competitor Ads Intelligence (NEW) → workflows/competitor-ads.md
└── Script: scripts/scrape_competitor_ads.py
└── Platforms: Facebook Ads Library, Google Ads Transparency
└── Features: Spend estimates, creative analysis, benchmarking
環境設定
# Required in .env
APIFY_TOKEN=apify_api_xxxxx
API キーはこちらから取得してください:https://console.apify.com/account/integrations
よくある使用パターン
Twitter のトレンドをスクレイピング
python scripts/scrape_twitter_ai_trends.py --query "AI agents" --max-tweets 50
Reddit のディスカッションをスクレイピング
python scripts/scrape_reddit_ai_tech.py --subreddits "MachineLearning,LocalLLaMA" --max-posts 100
LinkedIn の投稿者をスクレイピング
python scripts/scrape_linkedin_posts.py author "https://linkedin.com/in/username" --max-posts 30
URL を自動検出してスクレイピング
python scripts/scrape_content_by_url.py "https://x.com/user/status/123456"
Instagram のプロフィールをスクレイピング
python scripts/scrape_instagram.py profile "https://instagram.com/username" --max-posts 20
Instagram のハッシュタグをスクレイピング
python scripts/scrape_instagram.py hashtag "#artificialintelligence" --max-posts 50
Instagram のリールをスクレイピング
python scripts/scrape_instagram.py reels "https://instagram.com/username" --max-reels 30
Facebook ページをスクレイピング
python scripts/scrape_facebook.py page "https://facebook.com/pagename" --max-posts 50
Facebook のレビューをスクレイピング
python scripts/scrape_facebook.py reviews "https://facebook.com/pagename" --max-reviews 100
Facebook Marketplace をスクレイピング
python scripts/scrape_facebook.py marketplace "laptops in san francisco" --max-items 30
Google マップのビジネス情報をスクレイピング
python scripts/scrape_google_maps.py search "AI consulting firms in New York" --max-results 50
Google マップのレビューをスクレイピング
python scripts/scrape_google_maps.py reviews "ChIJN1t_tDeuEmsRUsoyG83frY4" --max-reviews 100
Web サイトから連絡先情報を抽出
python scripts/scrape_contact_info.py "https://example.com" --depth 2
連絡先情報の一括エンリッチメント
python scripts/scrape_contact_info.py --urls-file companies.txt --output contacts.json
競合他社の広告をスクレイピング(単一の競合他社)
python scripts/scrape_competitor_ads.py "Nike" --platforms facebook google --country US --days 30
複数の競合他社の広告を比較
python scripts/scrape_competitor_ads.py "Nike" "Adidas" "Puma" --compare --output comparison.json
キーワードから広告主を検出
python scripts/scrape_competitor_ads.py --search "running shoes" --country US --max-ads 200
メディアタイプで競合他社の広告を絞り込み
python scripts/scrape_competitor_ads.py "Netflix" "Disney+" --platforms facebook --media-types video --days 7
トレンドを分析(新機能)
# Analyze specific topic with enrichments
python scripts/analyze_trends.py "artificial intelligence" --sources google instagram tiktok --days 90
# Discover trending topics in category
python scripts/analyze_trends.py --category technology --discover --top 50
# Compare multiple trends
python scripts/analyze_trends.py "AI" "blockchain" "metaverse" --compare
# Export HTML trend report
python scripts/analyze_trends.py "sustainable fashion" --format html --output trend_report.html
コストの見積もり
| プラットフォーム | アクター | アイテムあたりのコスト |
|---|---|---|
| kaitoeasyapi/twitter-x-data-tweet-scraper | ~$0.00025 | |
| trudax/reddit-scraper | ~$0.001-0.005 | |
| harvestapi/linkedin-post-search | ~$0.01-0.05 | |
| YouTube | streamers/youtube-scraper | ~$0.01-0.05 |
| TikTok | clockworks/tiktok-scraper | ~$0.005 |
| Instagram(プロフィール) | apify/instagram-profile-scraper | ~$0.005 |
| Instagram(投稿) | apify/instagram-post-scraper | ~$0.002-0.005 |
| Instagram(ハッシュタグ) | apify/instagram-hashtag-scraper | ~$0.002-0.005 |
| Instagram(リール) | apify/instagram-reel-scraper | ~$0.005-0.01 |
| Instagram(コメント) | apify/instagram-comment-scraper | ~$0.001-0.003 |
| Facebook(ページ) | apify/facebook-pages-scraper | ~$0.005-0.01 |
| Facebook(投稿) | apify/facebook-posts-scraper | ~$0.003-0.005 |
| Facebook(レビュー) | apify/facebook-reviews-scraper | ~$0.002-0.005 |
| Facebook(グループ) | apify/facebook-groups-scraper | ~$0.005-0.01 |
| Facebook(Marketplace) | apify/facebook-marketplace-scraper | ~$0.005-0.01 |
| Google マップ(検索) | compass/crawler-google-places | ~$0.01-0.02 |
| Google マップ(場所) | compass/google-maps-business-scraper | ~$0.01 |
| Google マップ(レビュー) | compass/google-maps-reviews-scraper | ~$0.003-0.005 |
| 連絡先情報のエンリッチメント | lukaskrivka/contact-info-scraper | ~$0.01-0.03 |
| Google トレンド | apify/google-trends-scraper | ~$0.01 |
| トレンド分析(複数) | 複数のアクター | ~$0.50-1.50/run |
| Facebook 広告ライブラリ | apify/facebook-ads-scraper | ~$0.75/1K ads |
| Facebook 広告(代替) | curious_coder/facebook-ads-library-scraper | ~$0.50/1K ads |
| Google 広告の透明性 | lexis-solutions/google-ads-scraper | ~$1.00/1K ads |
| Google 広告(代替) | xtech/google-ad-transparency-scraper | ~$0.80/1K ads |
出力先
スクレイピングしたデータはすべて、タイムスタンプ付きのファイル名で .tmp/ に保存されます:
.tmp/twitter_ai_trends_YYYYMMDD.json.tmp/reddit_ai_tech_YYYYMMDD.json.tmp/linkedin_posts_YYYYMMDD_HHMMSS.json
セキュリティに関する注意事項
認証情報の取り扱い
APIFY_TOKENは.envファイルに保存してください(git にコミットしないでください)- Apify Console から API トークンを定期的にローテーションしてください
- スクリプトの出力に API トークンを記録したり表示したりしないでください
- ハードコードされた値ではなく、環境変数を使用してください
データプライバシー
- スクレイピングされるデータには、公開されているコンテンツのみが含まれます
- ソーシャルメディアの投稿には PII(氏名、ハンドル名、プロフィール情報)が含まれる場合があります
- データはローカルの
.tmp/ディレクトリに保存されます - アクターの実行完了後、Apify はデータを保持しません
- データの最小化を検討し、必要なものだけをスクレイピングしてください
アクセス範囲
- Apify トークンはアカウント全体へのアクセス権を持ちます(細かなアクセス範囲の設定はありません)
- 必要に応じて、プロジェクトごとに別の Apify アカウントを使用してください
- Apify Console のダッシュボードから使用状況を監視してください
コンプライアンスに関する考慮事項
- 利用規約:各プラットフォーム(Twitter、Reddit、LinkedIn)の利用規約を遵守してください
- レート制限:アクターには、禁止措置を避けるためのレート制限が組み込まれています
- Robots.txt:一部のアクターはrobots.txtを回避する場合があります。責任を持って使用してください
- GDPR:EU居住者のスクレイピングされた個人識別情報(PII)は、GDPRの適用対象となる場合があります
- 倫理的な利用:公開データのみをスクレイピングしてください。認証を回避してはいけません
- プロキシの倫理:住宅用プロキシは倫理的に使用してください
トラブルシューティング
よくある問題
問題:アクターの実行に失敗する
症状: スクリプトが「Actor run failed」またはタイムアウトエラーで終了する 原因: アクター IDが無効、プロキシクレジットが不足、またはアクターの設定に問題がある 解決策:
- スクリプト内のアクター IDが正しいことを確認します
- Apify Consoleでアクターの実行ログを確認します
- プロキシ設定がアクターの要件に合っていることを確認します
- まずデフォルトのプロキシ設定で実行してみます
問題:結果が空で返される
症状: スクリプトは完了するが、返される項目が0件 原因: プラットフォームによるコンテンツのブロック、無効なクエリ、またはプロキシの検出 解決策:
- 別のプロキシタイプ(住宅用またはデータセンター)を試します
- 検索クエリを簡潔にします
- リクエストする結果数を減らします
- プラットフォームがスクレイピングをブロックしているか確認します
問題:プラットフォームによってレート制限される
症状: スクリプトが429エラーまたは「rate limited」メッセージで失敗する 原因: 短時間にリクエストが多すぎる 解決策:
- リクエスト間に遅延を追加します(アクターの設定)
- 同時リクエスト数を減らします
- プロキシローテーションを使用します
- クールダウン期間の後に待ってから再試行します
問題:APIトークンが無効
症状: 認証エラーまたは「invalid token」メッセージが表示される 原因: トークンの有効期限切れ、取り消し、または設定ミス 解決策:
- Apify ConsoleでAPIトークンを再生成します
.envファイルにトークンが正しく設定されていることを確認します- トークンの先頭または末尾に空白がないか確認します
APIFY_TOKEN環境変数が読み込まれていることを確認します
問題:プロキシ接続エラー
症状: 接続タイムアウトまたはプロキシエラーが発生する 原因: プロキシプールの枯渇、または地域制限の問題 解決策:
- プロキシタイプ(basic、住宅用、またはデータセンター)を切り替えます
- Apify Consoleでプロキシクレジットの残高を確認します
- 別のプロキシの国/地域を試します
- 根本原因かどうかを確認するため、プロキシを無効にします
リソース
プラットフォームのリファレンス
- references/twitter.md - Twitter/Xのスクレイピングの詳細
- references/reddit.md - サブレディットを指定したRedditのスクレイピング
- references/linkedin.md - LinkedInの投稿のスクレイピング(著者または検索モード)
- references/instagram.md - Instagramのプロフィール、投稿、ハッシュタグ、リール、コメントのスクレイピング
- references/facebook.md - Facebookのページ、投稿、レビュー、グループ、マーケットプレイスのスクレイピング
- references/multi-platform.md - TikTokとYouTubeのスクレイピング
- references/url-detect.md - URLタイプを自動検出してスクレイピング
ビジネス/場所のリファレンス
- references/google-maps.md - Google Mapsでのビジネス検索、場所の詳細、レビュー
- references/contact-enrichment.md - ウェブサイトからメールアドレス、電話番号、ソーシャルプロフィールを抽出
ワークフローのリファレンス
- workflows/lead-generation.md - 複数ステップのリード獲得ワークフロー
- workflows/influencer-discovery.md - 各プラットフォームでインフルエンサーを見つけて分析
- workflows/competitor-intel.md - 競合情報を収集するワークフロー
- workflows/trend-analysis.md - スコアリングを含む、複数のプラットフォームにわたる拡充されたトレンド分析
統合パターン
スクレイピングと情報の拡充
スキル: apify-scrapers → parallel-research ユースケース: ソーシャルメディアの投稿をスクレイピングし、その後、詳細な調査で情報を拡充する フロー:
- Twitter/Redditでトピックに関する言及をスクレイピングします
- 投稿から企業名またはURLを抽出します
- parallel-researchを使って各企業の詳細情報を取得します
スクレイピングと要約
スキル: apify-scrapers → content-generation ユースケース: ソーシャルメディアのトレンドからニュースレターのコンテンツを作成する フロー:
- Twitter からトレンドの AI 投稿をスクレイピングする
- スクレイピングしたデータを content-generation に渡して要約する
- 形式を整えたニュースレターのセクションを生成する
スクレイピングとアーカイブ
スキル: apify-scrapers → google-workspace ユースケース: チームがアクセスできるよう、スクレイピングしたデータを Google Drive に保存する フロー:
- 対象アカウントから LinkedIn の投稿をスクレイピングする
- データを CSV または JSON としてフォーマットする
- google-workspace を使用して、Google Drive のクライアントフォルダーにアップロードする
トレンド分析とコンテンツ戦略
スキル: apify-scrapers (trend-analysis) → content-generation ユースケース: トレンドのトピックを特定し、コンテンツ戦略を作成する フロー:
- トレンド分析を実行する:
python scripts/analyze_trends.py "AI productivity" --sources all - ライフサイクルの段階と機会スコアを確認する
- content-generation を使用して、機会の大きいトレンド向けのコンテンツを作成する
- ベロシティスコアの高い新興トレンドに注力する
競合トレンドのモニタリング
スキル: apify-scrapers (trend-analysis) → parallel-research ユースケース: トレンドのトピックにおける競合他社の認知度をモニタリングする フロー:
- 業界のトレンドを分析する:
python scripts/analyze_trends.py --category "your-industry" --discover - それらのトレンドにおける自社ブランドと競合他社を比較する
- parallel-research を使用して、ギャップを詳しく調査する
- 競合情報レポートを生成する