Cloudflareで保護されたWebサイトをスクレイピングする方法

効率的なWebスクレイピングのためにCloudflare迂回技術をマスターしましょう。
1 分読
How to Scrape a Cloudflare-Protected Website blog image

このガイドでは、次について説明します。

  • Cloudflareとは
  • CloudflareのWAFソリューションでスクリプトのスクレイピングがやりにくくなる理由
  • オールインワンソリューションを使用してCloudflare WAFを迂回する方法
  • Cloudflareで主に利用されているボット対策への対処方法

さっそく始めましょう!

Cloudflareとは?

Cloudflareは、Web上で最大級のネットワークを運営するWebインフラよびセキュリティ企業です。Webサイトをより高速かつ安全にするための包括的なサービス一式を提供しています。

基本的には、Cloudflareは主にCDN(コンテンツ配信ネットワーク)として機能し、サイトのコンテンツをグローバルネットワークにキャッシュして読み込み時間を改善し、待ち時間を短縮します。さらに、DDoS(分散型サービス拒否)保護、WAF(Webアプリケーションファイアウォール)、ボット管理、DNSサービスなどの機能も提供しています。

Cloudflareのネットワークと統合することで、サイトのセキュリティを迅速に強化し、パフォーマンスを最適化できます。これにより、Cloudflareは世界中の何百万ものWebサイトにとって頼れるソリューションになりました。

Cloudflare WAFの概要

WAFはWebアプリケーションファイアウォールの略で、Webアプリケーションとインターネットの間のHTTPトラフィックをフィルタリングして監視するセキュリティシステムです。DDoS、クロスサイトスクリプティング(XSS)、SQLインジェクション、その他の悪意のあるアクティビティなどの攻撃からWebサイトを保護するのに役立ちます。

その中でもCloudflare WAFは、世界で最も広く使用されているWAFソリューションの1つです。その人気の理由は、CDNとしてCloudflareが広く採用されていることにあります。すでにCloudflare上にあるWebサイトの場合、WAFをデフォルト設定で有効にするには、数回クリックするだけでOKです。

Cloudflare WAFが実装している主なアンチボットテクノロジーとテクニックには、以下のようなものがあります。

  • レート制限:DDoS攻撃を阻止し、ブルートフォース攻撃を防ぐために、一定時間内に単一のIPアドレスから送信できるリクエストの数を制限します。
  • JavaScriptチャレンジ:訪問者がJavaScriptを実行できるか確認します。(実在するユーザーであれば一般的に実行できます)
  • Turnstile CAPTCHA:ボットが疑われるものに対して、CAPTCHAを表示します。
  • IPレピュテーション:レピュテーションデータベースを保守して、疑わしいIPアドレスを直ちにブロックします。
  • 行動分析:訪問者の行動を監視して、自動化されたパターンや異常なアクティビティを検出します。

Cloudflare WAFで保護されたサイトでは、通常、自動リクエストをブロックするために1つ以上のアンチボットソリューションが採用されています。これらの防御の組み合わせが、Cloudflareで保護されたサイトのスクレイピングを特に難しくしているのです。

サイトのスクレイピング時にCloudflareブロックを迂回する最初のソリューション

Cloudflareで保護されたサイトでWebスクレイピングする際の、最初のアプローチに最適なソリューションとアイデアを見つけましょう。

Cloudflareの完全な迂回

CloudflareはCDNの役割を果たすことをお忘れなく。つまり、Cloudflareはサイトのコンテンツをキャッシングし、地理的に分散した複数のサーバーから配信します。そのため、Cloudflare経由で配信されたサイトには通常、CDNネットワーク内のサーバーを介してのみアクセスできます。

さて、CDNの背後にあるサイトサーバーのIPアドレスを発見できたとしたらどうでしょうか。そうすれば、Cloudflareを完全に迂回しながらサイトを操作できるようになります。結局のところ、Cloudflareはネットワークを通過するリクエストのみを審査できるからです。

これは、SecurityTrailsのようなDNS履歴参照ツールを使用して、元のサーバーのIPアドレスを明らかにする過去のDNSレコードを特定することで可能です。IPを取得したら、Cloudflareを迂回しながら直接サーバーにリクエストを送信してみることもできます。

問題は、サーバーがCloudflareのIP範囲からのリクエストのみを受け付けるように追加設定されている可能性があることです。そうなると、ブロックされずに直接サイトに接続することはほぼ不可能です。さらに、元のサーバーIPを見つけることは非常に難しく、可能性は低いでしょう。

無料のCloudflare解決ツール

オンラインでは、Cloudflareを迂回するように設計された無料のオープンソースライブラリがいくつか見つかります。特に人気があるのは、次のようなツールです。

  • Cloudscraper:Cloudflareのアンチボットチャレンジを処理するPythonモジュール。
  • Cfscrape:Cloudflareのアンチボットページを迂回するための軽量PHPモジュール。
  • Humanoid:CloudflareのアンチボットJavaScriptチャレンジを迂回するためのNode.jsパッケージ。

これらの解決策は一時的には有効かもしれませんが、アンチスクレイピングはいたちごっこであることを忘れてはいけません。Cloudflareは保護メカニズムを継続的に更新しているため、今日機能している方法が明日も有効であるとは限りません。

ご想像通り、これらのプロジェクトのほとんどは何年もアップデートされていません。Cloudflareのアップデートに追いつくための際限のない戦いに、開発者が匙を投げてしまったからです。

有料のCloudflare解決ツール

Cloudflareで保護されたサイトをスクレイピングする最善の解決策は、ほとんどの場合、有料の製品を使用することです。有料であることで、スクレイピング分野の専門家による定期的な更新が可能になり、Cloudflareの防御に対抗する高い信頼性が維持されます。

それに加え、さらに、Bright Dataのような一流のプロバイダーは、24時間年中無休のテクニカルサポートも提供しており、あらゆる問題の解決を支援しています。プロフェッショナルなCloudflareスクレイピングソリューションをお探しの場合は、当社のスクレイピングブラウザをお試しください。

クラウドベースのスケーラブルなGUIブラウザとして、Playwright、Puppeteer、Selenium、その他のヘッドレスブラウザのライブラリと統合できます。Cloudflareに対する高い効果を保証するために、IPローテーション、CAPTCHA解決機能、ユーザーエージェントローテーションなどの機能が含まれています。

Cloudflareで保護されたサイトのスクレイピング:アンチボットを迂回するためのDIYアプローチ

Cloudflareを解決するのは困難です。特に、有料のオールインワンソリューションを使用しないのであれば。その困難な道を歩みたいのであれば、Cloudflareのボット対抗策をすべて考慮し、それを乗り越える方法を見つける必要があります。

このセクションでは、Cloudflareをすり抜け、WAFで保護されたサイトをスクレイピングするのに最も役立つ高レベルのテクニックをいくつか紹介します。詳細な手順については、「Cloudflareを迂回する方法」のガイドをご覧ください。

では始めましょう!

JavaScriptレンダリング

Cloudflareがボットの検出に使用する最も一般的な手法の1つは、JavaScriptチャレンジです。これらはWebページに埋め込まれたJavaScriptスクリプトで、レンダリング時にブラウザによって実行されます。ここでは、訪問者がボットである可能性を判断するために特定のチェックが行われます:

Webページのアクセス時のCloudflareテスト

これらのチャレンジの結果に基づいてCloudflareがボットを疑った場合、CAPTCHAが表示されます。それがなければ、ページのコンテンツにアクセスできるでしょう。

したがって、Cloudflareで保護されているページをターゲットにするには、Playwright、Selenium、Puppeteerなどのブラウザ自動化ツールを使用する必要があります。これらのツールを使用すると、通常のユーザーのようにWebページとやりとりするようブラウザに指示することができます。詳細については、「Playwrightを使用したWebスクレイピング」のガイドをご覧ください。

問題は、ヘッドレスブラウザはアンチボット検出システムにさらされる可能性のあるデフォルト設定を使用していることです。これを迂回するには、ヘッドレスブラウザの活動を隠すのに役立つ、Playwright StealthやPuppeteer Stealth(Puppeteer Extra経由)などのライブラリを使用する必要があります。

CAPTCHA解決

Cloudflareにボットであると判断された場合、Turnstile CAPTCHAによるブロックが試みられます。

Turnstile CAPTCHAの例

構成によっては、CAPTCHAは上のようなクリックベースの簡単なテストであったり、下のようなより複雑なパズルであったりします。

パズルCAPTCHAの例

CAPTCHA解決の自動化は簡単ではありません。というのも、CAPTCHAはボットと人間の区別を念頭に設計されたテストだからです。お使いのヘッドレスブラウザでこのような問題が発生した場合は、「PythonでCAPTCHAを迂回する」のガイドで要約されているテクニックをお試しください。

スクレイピングスクリプトで使用している技術に関係なく機能する、より信頼性の高いソリューションをお探しなら、Bright DataのCloudflare Turnstile解決ツールをご検討ください。これにより、CloudflareのTurnstile CAPTCHAが迅速かつ自動的に解決されます。

レート制限迂回

短期間に同じIPから多数のリクエストを行うと、Cloudflareは一時的または永久にそのIPを禁止する可能性があります。こうなるとスクレイピング操作が停止し、IPレピュテーションが損なわれるため、問題となります。

DDoS攻撃や望ましくない自動リクエストを阻止するために使用される上記の手法は、レート制限と呼ばれます。IPは接続中のネットワークに関連付けられているため、簡単に変更できません。IPローテーションを実装して禁止を迂回する唯一の効果的な方法は、プロキシサービスを使用することです。

住宅用プロキシのようなソリューションを使用すると、スクリプトのリクエストが特定の場所にある現実のデバイスから送信されているように見せかけることができます。当社の住宅用プロキシ製品の詳細をご覧ください。

ブラウザスプーフィング

ブラウザは、ヘッドレスモードであっても大量のリソースを消費します。そのため、ブラウザの自動化ツールを使用して、Cloudflareで保護されたWebサイトを対象にスクレイピング操作を構築すると、リソースを大量に消費するプロセスとなる可能性があります。その場合、複数のサーバーと複雑なアーキテクチャが必要になる可能性があります。

そのような手間を避けるために、また、CloudflareのWAFの攻撃性が控えめに設定されている場合には、別のアプローチを試すこともできます。それは、実際のブラウザを模倣するHTTPクライアントから自動リクエストを行うものです。これはブラウザスプーフィングとして知られています。

目標は、HTTPリクエストを通常のブラウザからのリクエストにできるだけ近づけることです。User-Agentなどの特定のHTTPヘッダーを設定することでこれを達成できます。詳細については、「Webスクレイピングに最適なユーザーエージェント」のガイドをご覧ください。

もっと複雑なシナリオでは、そのトリックだけでは不十分かもしれません。TLSフィンガープリントにより、CloudflareはこうしたリクエストをブラウザではなくHTTPクライアントから送信されたものとして引き続き検出できます。

SSL/TLSクライアントのテスト例

この概念に馴染みがない方のために説明すると、TLSフィンガープリンティングとは、TLS上で安全な接続を確立する方法に基づいてクライアントを識別するものです。ブラウザのTLSフィンガープリントの複製には、当社の専用チュートリアルで説明されているように、curl-impersonateのようなHTTPクライアントを使用できます。

まとめ

この記事では、Cloudflareで保護されたサイトをスクレイピングするためのヒントとコツをいくつかご紹介しました。Cloudflareは市場で最も人気の高いCDNサービスで、高度なアンチボットソリューションも提供しています。ここで学んだように、Cloudflareのスクレイピング対策を迂回することは簡単ではありませんが、不可能ではありません。

どのような方法を選択するにしても、次のようなプロフェッショナルで迅速かつ信頼性の高いスクレイピングソリューションを利用すれば、すべてがスムーズになることを心に留めておいてください。

  • Web Unlocker:レート制限、フィンガープリント、その他のアンチボット制限を自律的に迂回し、パブリックWebデータのシームレスな収集を可能にします。
  • CAPTCHA解決ツール:さまざまな種類のCAPTCHAを自動的に解決するので、手動操作なしで任意のWebページのコンテンツにアクセスしたり、インタラクションを完了することができます。
  • スクレイピングブラウザ:Webサイトのブロック解除プロセスを自動化しながら、動的Webデータをスクレイピングできる完全ホストブラウザ。

Bright Dataの豊富なスクレイピングツールで、Cloudflareで保護されたサイトからのデータ抽出がかつてないほど簡単になりました。

今すぐ登録して、Bright Dataのどのソリューションがニーズに最適かを確認してください。今すぐ無料トライアルを開始しましょう!

クレジットカードは必要ありません

あなたは下記にもご興味がおありかもしれません

web scraping with claude blog image
ウェブデータ

2025年のクロードによるウェブスクレイピング

Pythonを使ってWebスクレイピングを自動化し、構造化データを楽に抽出するClaude AIの使い方を学ぶ。
18 分読
Building AI-Ready Vector Datasets for LLMs blog image
AI

LLMのためのAI対応ベクトルデータセット構築:Bright Data、Google Gemini、Pineconeを使ったガイド

大規模言語モデル(LLM)は、私たちが情報にアクセスし、インテリジェントなアプリケーションを構築する方法を変革しています。LLMの可能性を最大限に引き出すには、特にドメイン固有の知識や独自のデータを使用する場合、高品質で構造化されたベクトルデータセットを作成することが重要です。LLMの性能と精度は、入力データの品質に直接結びついています。準備不足のデータセットは劣悪な結果をもたらす可能性があり、一方、十分にキュレーションされたデータセットはLLMを真のドメイン・エキスパートに変えることができます。 このガイドでは、AIに対応したベクターデータセットを生成するための自動パイプラインの構築方法を順を追って説明する。 課題:LLMのためのデータ収集と準備 LLMは膨大な汎用テキストコーパスで学習されますが、商品関連のクエリへの回答、業界ニュースの分析、顧客フィードバックの解釈など、特定のタスクやドメインに適用すると、不足することがよくあります。LLMを真に役立てるには、ユースケースに合わせた高品質のデータが必要です。 このデータは通常、ウェブ上に分散していたり、複雑なサイト構造の背後に隠されていたり、ボット対策によって保護されていたりする。 当社の自動ワークフローは、データセット作成の最も困難な部分を処理する合理化されたパイプラインでこれを解決します: コア技術の概要 パイプラインを構築する前に、関連するコアテクノロジーと、それぞれがワークフローをどのようにサポートしているかを簡単に見ておこう。 ブライトデータスケーラブルなウェブデータ収集 AIに対応したベクターデータセットを作成するための最初のステップは、関連性のある高品質なソースデータを収集することです。ナレッジベースやドキュメンテーションのような内部システムから得られるものもあるが、大部分は公共のウェブから得られることが多い。 しかし、最近のウェブサイトは、CAPTCHA、IPレート制限、ブラウザフィンガープリントなどの高度なボット対策メカニズムを使用しているため、大規模なスクレイピングは困難である。 Bright Dataは、データ収集の複雑さを抽象化するWeb Unlocker APIでこの課題を解決します。プロキシのローテーション、CAPTCHAの解決、ブラウザのエミュレーションを自動的に処理するため、データへのアクセス方法ではなく、データに集中することができます。 Google Gemini: インテリジェント・コンテンツ・トランスフォーメーション Geminiは、Googleによって開発された強力なマルチモーダルAIモデルのファミリーであり、様々なタイプのコンテンツを理解し処理することに優れている。私たちのデータ抽出パイプラインにおいて、Geminiは3つの重要な機能を果たします: このAIを活用したアプローチは、特に以下のような使用例において、脆弱なCSSセレクタや壊れやすい正規表現に依存する従来の方法よりも大きな利点をもたらす: AIがデータ抽出プロセスにどのような変化をもたらしているかについては、Using AI for Web Scrapingをご覧ください。スクレイピングのワークフローにGeminiを実装するための実践的なチュートリアルをお探しの場合は、包括的なガイドをご覧ください:GeminiによるWebスクレイピングをご覧ください。 文の変形意味埋め込み文の生成 エンベッディングは、高次元空間におけるテキスト(または他のデータタイプ)の密なベクトル表現である。これらのベクトルは意味的な意味を捉え、コサイン類似度やユークリッド距離のようなメトリクスを用いて測定される、類似したテキスト片を近接したベクトルで表現することを可能にする。この特性は、セマンティック検索、クラスタリング、検索拡張生成(RAG)のようなアプリケーションで重要である。 Sentence Transformersライブラリは、高品質の文や段落の埋め込みを生成するための使いやすいインターフェースを提供する。Hugging Face Transformersの上に構築され、意味タスクのために微調整された幅広い事前学習済みモデルをサポートしています。 このエコシステムで最も人気があり、効果的なモデルの1つがオールMiniLM-L6-v2である: より大きなモデルはより微妙なエンベディングを提供するかもしれないが、all-MiniLM-L6-v2は性能、効率、コストの間で非常に優れたバランスを提供する。その384次元ベクトルは ほとんどの実用的なユースケース、特に初期段階の開発やリソースに制約のある環境では、このモデルで十分すぎる。エッジケースにおける精度のわずかな低下は、通常、スピードとスケーラビリティの大幅な向上によって相殺されます。そのため、AIアプリケーションの最初のイテレーションを構築する場合や、控えめなインフラストラクチャでパフォーマンスを最適化する場合は、all-MiniLM-L6-v2を使用することをお勧めします。 Pineconeベクトル埋め込み画像の保存と検索 テキストがベクトル埋め込みデータに変換されると、それを効率的に保存、管理、照会するための専用のデータベースが必要になります。従来のデータベースはこのために設計されていません。ベクトル・データベースは、埋め込みデータの高次元の性質を扱うために特別に設計されており、RAGパイプライン、セマンティック検索、パーソナライゼーション、その他のAI駆動型アプリケーションに不可欠なリアルタイムの類似性検索を可能にします。 Pineconeは、開発者フレンドリーなインターフェイス、低レイテンシの検索パフォーマンス、完全に管理されたインフラストラクチャで知られる人気のベクトルデータベースです。ベクトル検索インフラストラクチャの複雑さを抽象化することで、複雑なベクトルインデックスと検索を効率的に管理します。主なコンポーネントは以下の通りです: Pineconeは2つのデプロイメントアーキテクチャを提供する:ServerlessとPod-Based です。ほとんどのユースケース、特に開始時や動的な負荷に対処する場合は、シンプルさとコスト効率からサーバーレスが推奨されます。 セットアップと前提条件 パイプラインを構築する前に、以下のコンポーネントが適切に設定されていることを確認する。 前提条件 各APIキーの生成方法については、以下のツール固有の設定セクションを参照してください。 必要なライブラリのインストール このプロジェクトのコアとなるPythonライブラリをインストールする: これらのライブラリーは提供している: 環境変数の設定 プロジェクトのルート・ディレクトリに.envファイルを作成し、APIキーを追加する: ブライトデータ設定 Bright DataのWeb Unlockerを使用するには: 実装例と統合コードについては、Web Unlocker GitHub […]
6 分読
AI

LLMにおけるスーパーバイズド・ファインチューニングとは?

このPythonガイドでは、概念、ツール、ワークフロー、そしてAIプロジェクトを向上させる実践的な例を取り上げています。
7 分読