IPブロック、CAPTCHA、構造変更... クローラーを作るより生かすことが10倍難しいです
読む時間: 12分 | 2026年1月時点
要約
クローラーを作ると1週間はうまくいきます。問題はその後です。
ウェブサイトは絶えず変化し、セキュリティは毎月強化され、インフラは予告なく揺れます。ハッシュスクレイパーは8年間に5,000以上のサイトをクロールし、27種類の障害タイプをカテゴリー別に整理しました。発生頻度、対応難易度、自己解決時の実際のコストも含まれています。
| カテゴリー | 障害タイプ数 | 対応難易度 |
|---|---|---|
| アクセスブロック | 8種類 | |
| サイト変更 | 6種類 | |
| インフラ/ネットワーク | 5種類 | |
| 認証/セッション | 4種類 | |
| データ品質 | 4種類 |
カテゴリー 1: アクセスブロック (8種類)
クローラーが最もよく直面する壁です。対象サイトが「あなたはボットですか?」と判断すると、データ収集は停止します。
1. IPブロック (Rate Limiting)
症状: 突然の403 Forbiddenまたは429 Too Many Requests
原因: 同じIPから短時間に大量のリクエスト
頻度: (非常に一般的)
対応難易度:
最も基本的なブロックです。リクエスト速度を下げるか、プロキシプールを使用すれば解決します。ただし、プロキシ管理自体が別業務になります。IP品質管理、ブロックされたIPの交換、可用性モニタリングにも注意する必要があります。
自己解決コスト: プロキシサービス月50万〜200万ウォン + 管理人員
2. Akamai Bot Manager
症状: ページにアクセスするとAkamaiロゴと待機画面のみが表示される
原因: ボット検出専門セキュリティソリューションがブラウザの指紋を精密に分析
頻度: (大手ECサイトでは一般的)
対応難易度:
国内ではCoupangが代表的です。 SeleniumやPlaywrightでアクセスしても、ブラウザの指紋、JavaScriptの実行パターン、マウスの軌跡、スクロール速度まで分析されます。一般的なクローリングツールではほとんど回避不可能です。
2026年1月の実測テストでは、Firecrawl(ステルスプロキシを含む)とJina Readerの両方がCoupang Akamaiにブロックされました。 ハッシュスクレイパーは独自のブラウザエミュレーション技術でこれを突破します。
自己解決コスト: 専門家人材 + 継続的な回避技術開発(年間数百万ウォン)
3. CAPTCHA
症状: "ロボットではありません"認証画面
原因: 疑わしいトラフィックパターンを検知し、人間かどうかを確認
頻度:
対応難易度:
reCAPTCHA、hCaptchaは外部解決サービス(2Captcha、Anti-Captcha)で自動解決できます。ただし、Naver ShoppingのレシートCAPTCHAのように独自開発されたCAPTCHAは外部サービスでは処理できません。別途機械学習モデルを学習させ、サイトがCAPTCHA画像を変更するとモデルも再学習が必要です。
自己解決コスト: 汎用CAPTCHA解決1回あたり2〜5ウォン + 独自CAPTCHAは別途ML開発が必要
4. JavaScriptベースのボット検出
症状: ページ読み込み後に空白の画面または無限リダイレクト
原因: クライアントJavaScriptがブラウザ環境を検証
頻度:
対応難易度:
単純なHTTPリクエスト(requests、urllib)はすぐに検出されます。 Headlessブラウザを使用しても、navigator.webdriver、window.chromeオブジェクトなどで自動化環境が識別されます。 Puppeteer Stealth、undetected-chromedriverなどがありますが、サイトごとに検出ロジックが異なるため、個別の対応が必要です。
5. User-Agent/ヘッダー検証
症状: 403 Forbiddenまたは異常な応答
原因: リクエストヘッダーが実際のブラウザパターンと一致しない
頻度:
対応難易度:
最も単純なブロックであり、最も簡単な対応です。 User-Agent、Accept、Refererヘッダーを合わせればよいです。 クローリング初心者が最初に直面する問題ですが、これだけでは高度なブロックを通過することはできません。
6. 地域ベースのブロック(Geo-blocking)
症状: 海外IPからアクセスするとブロックまたは異なるコンテンツが返される
原因: 特定の国のIPからのみアクセスを許可
頻度:
対応難易度:
韓国サイトをAWS US-Eastなどの海外サーバーからクロールするとよく発生します。 韓国IPプロキシを使用するか、国内サーバーで実行する必要があります。
7. robots.txt
症状: クローリングは可能ですが、法的リスクが存在
原因: サイトがrobots.txtで特定のパスのクローリングを禁止
頻度: (ほとんどのサイトに存在)
対応難易度: (技術) / (法的)
技術的には無視できますが、法的には別の話です。 大手企業サイトを商業目的でクロールする際は必ず確認が必要です。
8. WAF(Web Application Firewall)
症状: 突然のブロック、一貫性のない応答
原因: Cloudflare、AWS WAFなどがトラフィックパターンを総合分析
頻度:
対応難易度:
WAFはIP、リクエスト頻度、ブラウザの指紋、TLSハンドシェイクパターンを総合的に分析します。 Cloudflareの「5秒チャレンジ」を回避するにはJavaScript実行環境が必要です。 2025年からCloudflare TurnstileがreCAPTCHAを置き換えるサイトが急増しています。
カテゴリー 2: サイト変更 (6種類)
作成時は完璧だったクローラーがある日空のデータを返します。 誰も教えてくれません。
9. HTML構造の変更
症状: 空のデータまたは間違ったデータが返される
原因: 対象サイトのフロントエンドが更新された
頻度: (最も一般的な障害原因)
対応難易度:
Naver Shoppingは年間数十回フロントエンドを更新します。 Coupang、11st、Gmarketも同様です。 クラス名がproduct-priceからprd_price_v2に変更され、div構造が変わり、新しいコンポーネントが追加されます。
実データ: クローラー1つあたり年間平均6〜12回の構造変更に対応する必要があります。 クローラー10個なら年間60〜120回 — 1日に1回のペースで何かが壊れます。
自己解決コスト: 1回あたり3〜5時間 × 年8回 = 年間24〜40時間/クローラー
10. SPA/ダイナミックレンダリングへの切り替え
症状: 以前はうまく取得できていたページが空のHTMLのみを返す
原因: React/Vue/AngularなどのSPAへの全面リニューアル
頻度:
対応難易度:
SSR → SPAへの切り替え時、従来のHTTPベースのクローラーは完全に役立たなくなります。 Headlessブラウザベースでの完全な再構築が必要で、リソース消費も10倍以上増加します。
11. APIエンドポイントの変更
症状: API呼び出し時に404または応答形式の変更
原因: 内部API URL/スキーマの変更
頻度:
対応難易度:
SPAサイトの内部REST/GraphQL APIを直接呼び出すと、HTMLパースよりも効率的ですが、APIバージョンがv2→v3に変更されるとパースロジック全体を再作成する必要があります。
12. URLパターンの変更
症状: 以前のURLが404を返す
原因: URL構造のリニューアル
頻度:
対応難易度:
例: /product/12345 → /shop/items/12345. クローラーのURL生成ロジックを修正する必要があります。
13. ページネーション方式の変更
症状: 次のページの読み込みが失敗し、最初のページのみが繰り返し収集される
原因: ページ番号 → 無限スクロール、またはオフセット → カーソルベースの切り替え
頻度:
対応難易度:
14. コンテンツの読み込み方式の変更
症状: 一部のデータのみが収集され、残りが欠落
原因: Lazy loading、Intersection Observerベースのスクロールトリガーの導入
頻度:
対応難易度:
カテゴリー 3: インフラ/ネットワーク (5種類)
クローラーコードは正常ですが、実行環境で問題が発生します。
15. サーバーリソース不足
症状: 速度低下、OOM(メモリ不足)クラッシュ
原因: メモリ、CPU、ディスク容量不足
頻度:
対応難易度:
Headlessブラウザ(Chromium)は1つのタブあたり200〜500MBのメモリを消費します。 10個の同時クローリングであれば、2〜5GBが必要です。 メモリリークも考慮すると、定期的なプロセスの再起動が必須です。
16. プロキシ障害
症状: 接続タイムアウト、断続的な失敗
原因: プロキシサーバーダウン、IPの有効期限切れ、提供業者の障害
頻度:
対応難易度:
17. DNS解決失敗
症状: "ホストが見つかりません"エラー
原因: DNSサーバーの障害、ドメインの変更
頻度:
対応難易度:
18. SSL/TLS証明書の問題
症状: SSLハンドシェイク失敗
原因: 対象サイト証明書の期限切れ/更新遅延
頻度:
対応難易度:
19. 対象サーバーダウンタイム
症状: 503 Service Unavailable、504 Gateway Timeout
原因: 対象サイトメンテナンスまたは障害
頻度:
対応難易度: (再試行 + 通知の実装)
カテゴリー 4: 認証/セッション (4種類)
ログインが必要なサイトをクロールする際に特に頭を悩ませます。
20. ログインセッションの有効期限切れ
症状: 突然ログインページにリダイレクト
原因: セッションクッキーの有効期限、トークンTTL超過
頻度:




