。オプションがあります:","クランチベース","会社概要","素晴らしいサポートをありがとう!","クイックリンク","アフィリエイト・プログラム","ProxyScrape プレミアムトライアル","プロキシの種類","代理国","プロキシの使用例","重要","クッキーポリシー","免責事項","プライバシーポリシー","ご利用条件","ソーシャルメディア","フェイスブック","LinkedIn","ツイッター","クオラ","テレグラム","ディスコード"," © Copyright 2024 -Thib BV| Brugstraat 18 | 2812 Mechelen | ベルギー | VAT BE 0749 716 760"]}
大規模なウェブサイトからデータをスクレイピングするとき、あなたが人間であることを証明するためにCAPTCHAに直面する必要がなかった可能性が最も低い。ウェブスクレイパーであれば、サイバーセキュリティの専門家がなぜCAPTCHAを発明せざるを得なかったか、すでにご存知かもしれない。CAPTCHAは、あなたのボットがウェブサイトへのアクセスを自動化した結果生まれたものだ。そのため、本物のユーザーでさえ、さまざまな形で現れるCAPTCHAに立ち向かうという苦痛を味わわなければならなかった。しかし、ウェブスクレイパーであろうとなかろうと、CAPTCHAを回避することはできる。その前に、CAPTCHAとは何なのかについて説明しよう。
CAPTCHAとは、Completely Automated Public Turing Test to tell Computers and Humans Apartの略で、コンピュータと人間を見分けるためのテストです。かなり長い頭字語ですよね?さて、この頭字語の最後の部分、チューリング・テストが何を意味するのか不思議に思われるかもしれませんが、これは、ウェブページやウェブサーバーとやりとりしているのが人間かボットかを判断するための簡単なテストです。
結局のところ、CAPTCHAは人間とボットを区別し、サイバーセキュリティアナリストが総当たり攻撃やDDoS、状況によってはウェブスクレイピングからウェブサーバーを守るのに役立っている。
CAPTCHAがどのように人間とボットを区別しているのか見てみよう。
CAPTCHAは、お問い合わせ、登録、コメント、サインアップ、チェックアウトなど、ウェブサイトのフォームで見つけることができます。
従来のCAPTCHAには、背景色または透明な背景を持つボックス内に、引き伸ばされた、またはぼかされた文字、数字、またはその両方を含む画像が含まれています。そして、その文字を識別し、続くテキストフィールドに入力しなければならない。文字を識別するこのプロセスは、人間にとっては簡単ですが、ボットにとってはやや複雑です。
一方、高度なボットの中には、長年にわたる機械学習の助けを借りて、歪んだ文字を傍受できるものもある。その結果、グーグルのようないくつかの企業は、従来のCAPTCHAを洗練されたCAPTCHAに置き換えた。そのような例の一つが、次のセクションで紹介するReCAPTCHAである。
ReCAPTCHAはGoogleが提供する無料サービスである。テキストを入力したり、パズルや数式を解いたりする代わりに、チェックボックスにチェックを入れてもらいます。
典型的なReCAPTCHAは、従来のCAPTCHAよりも高度なものである。街頭の信号機、古い新聞や印刷された書籍のテキストなど、現実世界の画像やテキストを使用します。その結果、ユーザーは不鮮明で歪んだテキストを使った旧式のCAPTCHAに頼る必要がなくなる。
ReCAPTCHAテストには、あなたが人間かどうかを確認するための3つの重要なタイプがあります:
上の画像のように、「私はロボットではありません」というチェックボックスにチェックを入れるようユーザーに要求するReCAPTCHAである。肉眼ではボットでもこのテストを完了できるように見えるかもしれないが、いくつかの要素が考慮されている:
ReCAPTCHAがあなたが人間であることを確認できなかった場合、別のチャレンジが表示されます。
これらのReCAPTCHAは、上の画像にあるように、9または16の正方形の画像をユーザーに提供します。それぞれの正方形は、大きな画像の一部、または異なる画像を表しています。ユーザーは、特定の物体、動物、木、車、信号などを表す正方形を選択しなければなりません。
ユーザーの選択が、同じテストを行った他のユーザーの選択と一致した場合、そのユーザーは認証されます。そうでない場合、ReCAPTCHAはより難しいテストを提示します。
ReCAPTCHAは、チェックボックスやユーザーとのインタラクションを使わずに、あなたが人間かどうかを確認できることをご存知ですか?
ユーザーのウェブサイトとのやり取り履歴や、オンライン中のユーザーの一般的な行動を考慮することで、確かにそうなる。たいていの場合、これらの要素から、システムはあなたがボットかどうかを判断することができる。
そうしないと、先に述べた2つの方法のいずれかに戻ってしまう。
CAPTCHAは、ウェブサイトがボットの行動に似た異常な行動を検出した場合にトリガーされる。そのような異常な行動には、一瞬のうちに無制限にリクエストしたり、人間よりもはるかに高い割合でリンクをクリックしたりすることが含まれる。
そうなると、ウェブサイトによっては、システムを保護するために自動的にCAPTCHAが設置されることになる。
ReCAPTCHAに関する限り、何が引き金になるのかは正確にはわかっていません。しかし、一般的な原因としては、マウスの動き、閲覧履歴、クッキーの追跡などが挙げられます。
これで、CAPTCHAとRechaptchasとは何か、どのように動作するのか、そして何がその引き金になるのかについて、明確な概要をご理解いただけたと思います。次は、CAPTCHAがウェブスクレイピングにどのような影響を与えるかを見てみましょう。
CAPTCHAは、自動化されたボットがほとんどのスクレイピング操作を行うため、ウェブのスクレイピングを妨げる可能性がある。しかし、気を落とさないでほしい。この記事の冒頭で述べたように、ウェブをスクレイピングする際にCAPTCHAを克服する方法がある。その方法を紹介する前に、スクレイピングを行う前に注意すべきことに目を向けてみよう。
ウェブサイトに接続すると、接続先のウェブサイトにお客様のデバイスに関する情報が送信されます。接続先のウェブサイトはこの情報を使って、コンテンツをあなたのデバイスの仕様に合わせてカスタマイズしたり、メトリックトラッキングを行ったりします。そのため、同じデバイスからのリクエストであることがわかると、その後に送信されるリクエストはすべてブロックされます。
もう一つ注意しなければならないのは、ターゲットのウェブサイトがあなたのIPアドレスをブラックリストに入れていないということです。あなたのスクレーパー/クローラーであまりにも多くのリクエストを送信すると、彼らはあなたのIPアドレスをブラックリストに登録する可能性が高い。
HTTPヘッダーとプロキシ(これについては次のセクションで詳しく説明する)をプールでローテーションすることで、複数のデバイスが異なる場所からウェブサイトにアクセスできるようになる。そのため、CAPTCHAによる中断なしにスクレイピングを続けることができるはずだ。とはいえ、どのような方法であれ、ウェブサイトのパフォーマンスに悪影響を与えないようにしなければならない。
上記の重要な要素に加え、ボットを使ってウェブスクレイピングを行う際には、以下のCAPTCHAも知っておく必要がある:
単にユーザーエージェントを変更するだけでは不十分で、ユーザーエージェント文字列のリストを用意し、それらをローテーションさせる必要がある。このローテーションによって、実際には1つのデバイスがすべてのリクエストを送信しているにもかかわらず、ターゲットのウェブサイトはあなたを別のデバイスとして認識することになります。
このステップのベストプラクティスとして、実際のユーザーエージェントのデータベースを保持しておくと良いでしょう。また、クッキーが不要になったら削除してください。
CAPTCHAを解決する、より簡単で技術的な方法は、CAPTCHA解決サービスを利用することである。彼らは人工知能(AI)、機械学習(MI)、その他の技術の集大成を使ってCAPTCHAを解く。
スクレイパーに一瞬ごとにURLに直接アクセスさせると、受信側のウェブサイトは不審に思うだろう。その結果、ターゲットのウェブサイトはCAPTCHAを発動することになる。
このようなシナリオを避けるために、refererヘッダーを設定して、別のページから参照されているように見せることができる。そうすれば、ボットとして検知される可能性を減らすことができる。あるいは、ボットが目的のリンクを訪れる前に他のページを訪れるようにすることもできる。
ハニーポットとは、セキュリティ専門家がボットや侵入者を罠にかけるために使用する、ウェブページ上の隠し要素のことである。ブラウザはHTMLをレンダリングするが、CSSプロパティは非表示に設定されている。しかし人間とは異なり、ハニーポットのコードはボットがデータをスクレイピングする際に見えてしまう。その結果、ボットはハニーポットが仕掛けた罠にはまってしまう。
そのため、スクレイピングを開始する前に、ウェブページ内のすべての要素のCSSプロパティが非表示または不可視でないことを確認する必要があります。どの要素も非表示になっていないことを確認してから、スクレイピング用のボットをセットする。
この記事では、ウェブをスクレイピングする際にCAPTCHAを回避する方法について包括的なアイデアを提供した。CAPTCHAを避けるのは複雑なプロセスかもしれません。しかし、この記事で取り上げた特定のテクニックを使えば、CAPTCHAを回避するようにボットを開発することができる。
この記事で取り上げたすべてのテクニックを活用してほしい。