ウェブスクレイピング中にreCAPTCHAをバイパスする方法

Expert Network Defense Engineer
はじめに
CAPTCHAの目的は、実際のウェブサイトユーザーと自動プログラムを区別することです。これを達成するために、コンピュータに複雑なタスクを与え、ウェブサイトの実際のコンテンツにアクセスする前に完成させなければなりません。
では、これに対処するために何ができるでしょうか?それがこの記事のテーマです:プログラミングを使用してCAPTCHAを回避する方法、特にreCAPTCHAに焦点を当てて説明します。
reCAPTCHA:それは何ですか?
2007年、Googleは無料のCAPTCHAサービスであるreCAPTCHAをリリースし、ウェブサイトオーナーが自分のウェブサイトにSaaSベースのCAPTCHA APIを組み込む簡単な方法を提供しました。最初は、新聞や図書館のアーカイブをデジタル化する手助けをすることも意図されていました。ユーザーにスキャンされた情報を提供することで、印刷物でしか入手できなかった文書の変換を群衆から集めました。Googleは6年前にバージョン1のサポートを終了したため、バージョン2とバージョン3を見てみましょう。
reCAPTCHA v2
2013年にreCAPTCHA v2が公開された際、行動分析が導入されました。これは、reCAPTCHAボックスが表示される前に、デフォルトでCAPTCHAチェックボックスを表示するだけでなく、reCAPTCHAがユーザーの行動やブラウザ(つまり、マウスやキーボードの入力イベント)を追跡することを意味します。ユーザーがチェックボックスを選択した後、reCAPTCHAは指紋を使用して、ユーザーが本物のCAPTCHAチャレンジを完了する必要があるか、すぐに通過できるかを判断します。さらに、「見えない」CAPTCHAソリューションがあり、ウェブサイトの操作にシームレスに組み込むことができます。
reCAPTCHA v3
2018年、GoogleはreCAPTCHAをさらに改善し、ユーザーの関与をまったく必要とせずに、リクエストが人間から来ているか自動スクリプトから来ているかの可能性を示すボットスコアを計算する実装を発表しました。サンプルコンテンツ
Webアンロッカー/キャプチャソルバーを使用してreCAPTCHAを解決する
最近では、CAPTCHA解決技術が機械学習や人工知能を活用して、CAPTCHAの障害を検出し、成功裏に回避するようになっています。ウェブスクレイピングの人気が高まっているおかげです。「Webアンロッカー/キャプチャソルバー」を検索すれば、非常に似た機能セットを提供するウェブサイトやサービスが多数見つかるでしょう。Scrapeless Web Unlockerを利用するのは、そのようなオプションの一つです。
常にウェブスクレイピングのブロックやCAPTCHAにうんざりしていますか?
Scrapeless - 究極のオールインワンウェブスクレイピングソリューションを紹介します!
私たちの強力なツールスイートでデータ抽出の可能性を最大限に引き出しましょう:
最高のWebアンロッカー
高度なCAPTCHAを自動的に解決し、あなたのスクレイピングをシームレスかつ中断なく保ちます。
違いを体験してください - 無料でお試しください!
ウェブスクレイピング時にreCAPTCHAを回避するための戦略
ウェブスクレイパーは、reCAPTCHAを回避するためにいくつかの方法を利用します。ここでは、最も信頼性の高いつの方法を紹介します:
隠れた罠に注意する
ハニーポットは、ボットには表示されるが、人間には検出されない罠です。これらは、ウェブスクレイピングなどのタスクを実行する際にボットがよく操作する、ウェブページ全体、フォーム、またはデータフィールドかもしれません。
ほとんどのウェブサイトは、honyopot トラップを隠すために JavaScript を使用します。たとえば、display:none のようにです。ボットは通常、ウェブサイトの一部を調べるため、これらの隠された要素が見つかりやすく、操作される可能性が高くなります。
ハニーポット トラップを回避するための実践的な対策を観察してください:
- サービス条件を確認する - ウェブスクレイピングを行う前に、ウェブサイトの条件を確認するようにしてください。クロールできるページのリストについては、robots.txt ファイルやその他のボットエンゲージメントガイドラインを確認してください。その後、他のユーザーの活動に干渉しないように、オフピーク時間にウェブスクレイピングを行い、リクエスト間隔を延ばしてください。
- 隠された要素との対話を避ける - ハニーポットは隠されたアンカータグを引き起こす可能性があるため、リンクをクロールするときにはそれらを避ける必要があります。ウェブ要素の徹底的な検査とプログラム的な保護の使用により、不必要な隠されたウェブサイト要素とのやり取りを回避できます。
- 公共ネットワークを避ける - 共有されている公共ネットワーク上のサーバーがハニーポットを設置できることがあります。これは、公共の Wi-Fi ネットワークはプライベートネットワークよりも暗号化が劣ることがあるためです。この脆弱性のために、アンチボットはすべてのネットワークトラフィックを監視でき、ボットと実際のユーザーのブラウジング行動を比較することで自動化されたスクレイピング活動を特定するのが容易になります。
実際のブラウザ環境
HTTP クライアント ユーザーエージェントがデフォルトに設定されていると、スクレイパーとしてのあなたの身元が最も早く暴露されます。
ほとんどのアンチボットは、リクエストヘッダー内のボットのようなパラメータを探すことから始めます。これは、彼らの最初のセキュリティ対策の一つです。より複雑な状況では、リクエストヘッダーが認識されたボットと比較して本物かどうかを確認します。実際のブラウザと異なる場合、CAPTCHA がトリガーされ、リクエストが防止されます。
次のサンプルヘッダーを見てください:
language
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
HeadlessChrome/126.0.0.0 Safari/537.36"
]
以下の実際の Chrome ユーザーエージェントを、上記の画像と比較してください。HeadlessChrome フラグの代わりに Chrome が使用されていることがわかります。これはボットのように見えます。
language
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/126.0.0.0 Safari/537.36"
]
ライブラリベースのヘッダーを本物のブラウザのものに置き換えて、信頼性を高め、ブラックリストに登録される可能性を減らしてください。ブラウザの全リクエストヘッダーをコピーして、スクレイパーで使用することも可能です。
スクレイパーを本物のユーザーのように見せる
検出を避けるための鍵は、人間の行動を模倣し、ボットのような傾向を避けることです。人間とボットを区別するために、アンチボット対策はマウスの動き、ホバー技術、スクロールの向き、クリックの場所などのユーザー行動を監視します。
実際のユーザー行動を模倣するために、以下の技術を使用できます:
- スクロールのような反復作業にランダム性を組み込む;
- クリックによって表示されるコンポーネントを選択する;
- フォームのフィールドにデータを入力する;
- インタラクションを区切る際に、任意の時間間隔を使用する;
- リクエストの処理が失敗した場合は、指数バックオフを使用して処理を延期する。
結論
短いWebスクレイピングを終えたいだけのとき、CAPTCHAは確かに多くの苦痛を引き起こすかもしれません。しかし、スクレイパー環境内でそれに対処するためのいくつかの方法がありますので、あきらめないでください。
私たちは、これらのバイパス技術やさらに多くのことを行う完全なWebスクレイピングツールであるScrapelessの利用を提案します。それにより、スクレイピング作業が簡単になります。必要なのは1つのAPIリクエストだけです。今日、無料でお試しください。
Scrapeless では、適用される法律、規制、および Web サイトのプライバシー ポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツはデモンストレーションのみを目的としており、違法または侵害的な活動には関与していません。 私たちは、このブログまたはサードパーティのリンクからの情報の使用についていかなる保証もせず、一切の責任を負いません。 スクレイピング活動を行う前に、法律顧問に相談し、対象となる Web サイトの利用規約を確認するか、必要な許可を取得してください。