クローリング이 멈추는 27가지 이유

クローリング이 멈추는 27가지 이유. IP 차단, 캡차, 구조 변경 등 크롤러 장애 유형과 해결 방법 소개

108
クローリング이 멈추는 27가지 이유

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.webdriverwindow.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超過
頻度:

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

続きを読む

Get notified of new posts

We'll email you when 해시스크래퍼 기술 블로그 publishes new content.

Your email will only be used for new post notifications.