logo
languageJPdown
menu

まだ知らないの?遭遇可能5つのスクレイピング防止技術と回避対策

約6分で読めます

ビッグデータの台頭により、データ分析にWebクローラーを使ってインターネットからデータを取得し始めるようになりました。クローラーを作成するにはさまざまな方法があります。ブラウザーの拡張機能、Beautiful SoupまたはScrapyを使用したPythonコーディング、またはスクレイピングツール、例えばOctoparseなどでデータを抽出しています。

ただし、スパイダーとアンチボットの間には常にコーディング戦争があります。Web開発者は、さまざまな種類のスクレイピング防止手法を適用して、Webサイトがスクレイピングされないようにしています。この記事では、5つの最も一般的なスクレイピング防止手法と、それらを回避する対策を紹介しましす。

1.IPブロック

WebサイトがWebスクレイピングを検出する最も簡単な方法の1つは、IPトラッキングを使用することです。 Webサイトは、その動作に基づいてIPがロボットであるかどうかを識別できます。Webサイトが、1つのIPアドレスから定期的または短期間内に膨大な数のリクエストが送信されたことを発見した場合、IPがボットであると疑われるため、ブロックされる可能性が高くなります。この場合、スクレイピング対策クローラーを構築するために本当に重要なのは、単位時間あたりの訪問の数と頻度です。発生する可能性のあるいくつかのシナリオを以下に示します。

シナリオ1:数秒以内に複数の訪問を行う。人間がこれほど速くブラウジングできる方法はありません。そのため、クローラーが頻繁にリクエストをWebサイトに送信すると、WebサイトはIPをブロックして、それをロボットとして識別します。

対策:スクレイピング速度を遅くします。実行する前に遅延時間(たとえば、「スリープ」機能)を設定するか、2つのステップ間の待機時間を増やすことで解決できます。

シナリオ2:まったく同じペースでWebサイトにアクセスします。人間は同じ行動パターンを何度も繰り返すことはありません。一部のWebサイトはリクエストの頻度を監視し、1秒に1回など、まったく同じパターンでリクエストが定期的に送信される場合、スクレイピング防止メカニズムが有効になる可能性が非常に高くなります。

対策:すべてのステップにランダムな遅延時間を設定します。ランダムなスクレイピング速度では、クローラーは、人間がWebサイトを閲覧する方法のように動作します。

シナリオ3:高度なスクレイピング防止手法の中には、さまざまなIPからのリクエストを追跡し、それらの平均リクエストを分析するための複雑なアルゴリズムを組み込むものがあります。毎日同じ時間に同じ量の要求を送信したり、同じWebサイトにアクセスしたりするなど、IPの要求が異常な場合、ブロックされます。

対策:IPを定期的に変更してください。ほとんどのVPNサービス、クラウドサーバー、およびプロキシサービスは、IPローテーションを提供できます。これらのローテーションIPを介してリクエストが送信されている場合、クローラーはボットのように振る舞わないため、ブロックされるリスクを減らすことができます。

2.Captcha

Webサイトでこの種の画像を見たことはありますか?

1.クリックが必要あり

キャプチャー

2.特定の写真を選択する必要あり

キャプチャー

3.正しい文字列を入力/選択する必要あり

キャプチャー

これらはキャプチャーと呼ばれます。Captcaは、「completely automated public Turing test to tell computers and humans apart」(コンピュータと人間を区別する完全に自動化された公開チューリングテスト)のバクロニムです。このプログラムは、劣化した画像、空欄、または方程式さえも含む、人間だけが解決するさまざまな課題を提供します。

現在多くのWebサイトがCaptchaをスクレイピング防止手法として適用しています。Captchaを直接渡すことはかつて非常に困難でした。しかし、最近では、多くのオープンソースツールを適用してCaptchaの問題を解決できるようになりましたが、より高度なプログラミングスキルが必要になる場合があります。一部の人々は、独自の機能ライブラリを構築し、機械学習またはディープラーニングスキルを使用してこのチェックに合格する画像認識技術を作成します。

解決するよりもトリガーしないほうが簡単

ほとんどの人にとって、最も簡単な方法は、Captchaテストをトリガーしないように、抽出プロセスを遅くするか、ランダム化することです。遅延時間を調整するか、ローテーションIPを使用すると、テストをトリガーする確率を効果的に減らすことができます。

3.ログイン

多くのWebサイト、特にTwitter(The X)やFacebookなどのソーシャルメディアプラットフォームは、ログインした後にのみ情報を表示します。これらのようなサイトをクロールするには、クローラーはログ記録手順もシミュレートする必要があります。

Webサイトにログインした後、クローラーはCookieを保存する必要があります。Cookieは、ユーザーの閲覧データを保存する小さなデータです。Cookieがないと、Webサイトはすでにログインしていることを忘れて、再度ログインするように要求します。

さらに、厳密なスクレイピングメカニズムを備えた一部のWebサイトでは、ログイン後も毎日1000行のデータなど、データへの部分的なアクセスのみが許可される場合があります。

ボットはログイン方法を知る必要がある

1) キーボードとマウスの操作をシミュレートします。クローラーはログインプロセスをシミュレートする必要があります。これには、マウスでテキストボックスと「ログイン」ボタンをクリックするか、キーボードでアカウントとパスワード情報を入力するなどの手順が含まれます。

2) 最初にログインしてから、Cookieを保存します。 Cookieを許可するWebサイトの場合、Cookieを保存してユーザーを記憶します。これらのCookieを使用すると、短期的にWebサイトに再度ログインする必要はありません。このメカニズムのおかげで、クローラーは面倒なログイン手順を回避し、必要な情報を盗むことができます。

3) 残念ながら、上記の厳格なスケーピングメカニズムに遭遇した場合、1日1回などの固定頻度でWebサイトを監視するようにクローラーをスケジュールできます。期間内に最新の1000行のデータを取得し、最新のデータを蓄積するようにクローラーをスケジュールします。

4.UA

UAはUser-Agentの略で、ユーザーがどのようにアクセスしたかを識別するためのWebサイトのヘッダーです。オペレーティングシステムとそのバージョン、CPUタイプ、ブラウザ、およびそのバージョン、ブラウザ言語、ブラウザプラグインなどの情報が含まれています。

例: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11

Webサイトをスクレイピングするときに、クローラーにヘッダーが含まれていない場合、クローラーは自分自身をスクリプトとして識別するだけです(たとえば、クローラーをビルドするためにpythonを使用している場合、クローラーはpythonスクリプトとして表示されます)。Webサイトは、スクリプトからの要求を確実にブロックします。この場合、クローラーはUAヘッダーを備えたブラウザーのふりをして、Webサイトがアクセスできるようにする必要があります。

同じURLでサイトを入力しても、Webサイトは異なるブラウザまたは異なるバージョンに対して異なるページまたは情報を表示することがあります。チャンスとは、あるブラウザと互換性があり、他のブラウザはブロックされる情報です。したがって、正しいページにアクセスできるようにするには、複数のブラウザーとバージョンが必要になります。

ブロックされないように、UAを切り替える

正しい情報が見つかるまで、UA情報を変更します。複雑なスクレイピング防止手法を適用する一部のデリケートなWebサイトでは、同じUAを長時間使用するとアクセスがブロックされる場合があります。この場合、UA情報を定期的に変更する必要があります。

5.AJAX

最近では、従来のWeb開発手法ではなく、AJAXを使用してより多くのWebサイトが開発されています。 AJAXは、非同期JavaScriptとXMLの略で、Webサイトを非同期に更新する手法です。簡単に言えば、ページ内でわずかな変更のみが行われた場合、Webサイト全体をリロードする必要はありません。

それでは、WebサイトがAJAXを適用しているかどうかをどのようにして知ることができますか?

AJAXを使用しないWebサイト

Webサイトでわずかな変更を加えただけでも、ページ全体が更新されます。通常、読み込み中のサインが表示され、URLが変更されます。これらのWebサイトでは、このメカニズムを利用して、URLがどのように変化するかのパターンを見つけることができます。次に、クローラーに人間のようなWebサイトをナビゲートする方法を教える代わりに、URLをバッチで生成し、これらのURLから直接情報を抽出できます。

AJAXを使用したWebサイト

クリックした場所のみが変更され、読み込み中のサインは表示されません。通常、Web URLは変更されないため、クローラーはそれを簡単な方法で処理する必要があります。

AJAXによって開発された一部の複雑なWebサイトでは、それらのWebサイトで暗号化された方法を見つけ、暗号化されたデータを抽出するために特別な技術が必要になります。暗号化された方法はページによって異なるため、この問題の解決には時間がかかる場合があります。組み込みのJS操作を備えたブラウザーを見つけることができれば、Webサイトを自動的に復号化し、データを抽出できます。 

まとめ

Webスクレイピングおよびアンチスクレイピングの手法は日々進歩しています。この記事を読んでいるとき、おそらくこれらの手法は時代遅れになるでしょう。ただし、Octoparseからいつでもサポートを受けることができます。Octoparseは、誰でも、特に技術的背景のない人でもデータを取得できるようになるために存在します。 Webスクレイピングツールとして、これらの5つのスクレイピング 対策すべてにすぐに展開できるソリューションを提供できます。ビジネスやプロジェクトに強力なWebスクレイピングツールが必要な場合は、お気軽にお問い合わせください!

人気記事

トピックを検索する

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事

  • avatarOctoparse
    「営業活動のために企業のメールアドレスを取得するのが面倒」「効率的に企業のメールアドレスを収集する方法やツールを知りたい」このような悩みをお持ちの営業パーソンも多いのではないでしょうか。そこで今回は企業のメールアドレス収集に役立つツール10選を紹介します。海外で人気のツール8選、国内で人気のツール2選に分けて紹介していますので、ぜひ目的や用途に応じて最適なツールを試してみてください。
    2024.03.15 · 7 min read
  • avatarTakahashi
    本記事では、世界が最も注目する最先端技術トレンドを紹介します。時代に取り残されないためにも、ぜひ参考にしていただければ幸いです。
    2024.02.02 · 6 min read
  • avatarTakahashi
    購買の判断基準の中で、最も大きなファクターなのが「価格」です。そのため、出品者側にとって価格設定は重要であり、名経営者の稲盛和夫氏も「値決めは経営である」という言葉を残しています。そして、適切な価格設定のために重要なのが「価格調査」です。しかし、オンラインサイトで競合製品の値段を1つずつ確認するのは非効率でしょう。そこでおすすめなのが、価格調査ツールです。本記事では、価格調査の基本から価格調査ツール10選を紹介します。
    2024.01.09 · 6 min read
  • avatarAKI
    情報がデータ化されている現代において、収集したデータを活用することは必要不可欠といっても過言ではありません。しかし、データを活用することの重要性を理解しているものの、肝心のデータが社内や手元に存在せず、データ収集に悩んでいる方もいることでしょう。また、データが不足していることを自覚していても「データをどこから集めるのか」「購入しなければならないのか」という疑問も感じてるのではないでしょうか。ここでは、データ収集の必要性から実施方法、コストを下げる方法を紹介します。
    2023.02.14 · 7 min read