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

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

6,088
クローリング이 멈추는 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超過
頻度:

コメント

コメントする

メールアドレスは公開されず、返信通知にのみ使用されます。

続けて読む

Get notified of new posts

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

Your email will only be used for new post notifications.