データスクレイピングとは?

攻撃者は意図された速度より速くデータにアクセスするためにWebスクレイピングツールを使用することがあります。 この結果データの不正使用につながる可能性があります。

Share facebook icon linkedin icon twitter icon email icon

データスクレイピング

学習目的

この記事を読み終えると、以下のことができます。

  • データスクレイピングを定義する
  • Webスクレイピングの目的を説明する
  • データスクレイピングを緩和する方法を理解する
  • データスクレイピングとデータクローリングを区別する

データスクレイピングとは?

データスクレイピングは、最も一般的な形式では、コンピュータープログラムが別のプログラムから生成された出力からデータを抽出する手法を指します。データスクレイピングは、一般に、Webスクレイピング(アプリケーションを使用してWebサイトから貴重な情報を抽出するプロセス)として顕在化します。

Data Scraping

Webサイトのデータスクレイピングを行う理由とは?

通常、企業は自社のコンテンツをダウンロードして不正な目的で再利用されることを望んでいません。その結果、消費可能なAPIやその他の簡単にアクセスできるリソースを介してすべてのデータを公開することはありません。一方、スクレイパーボットは、アクセス制限の試みに関係なく、Webサイトデータの取得に関心があります。その結果、Webスクレイピングボットとさまざまなコンテンツ保護戦略はいたちごっことなり、それぞれが互いを打ち負かそうとしまていす。

Webスクレイピングのプロセスはかなり単純ですが、実装は複雑になる場合があります。Webスクレイピングには3つのステップがあります。

  1. 最初に、情報を引き出すために使用されるコード(スクレイパーボットと呼びます)によって、特定のWebサイトにHTTP GETリクエストが送信されます。
  2. Webサイトが応答すると、スクレイパーはHTMLドキュメントの特定のデータパターンを解析します。
  3. データが抽出されたら、スクレイパーボットの作成者が設計した特定のフォーマットにデータ変換されます。

スクレイパーボットは次のような多くの目的のために設計されます。

  1. コンテンツスクレイピング -コンテンツに依存する特定の製品またはサービスの独自の利点を再現するために、Webサイトからコンテンツを抽出することができます。たとえば、Yelpのような製品はレビューに依存しています。競合他社は、Yelpからすべてのレビューコンテンツをスクレイピングして、オリジナルのふりをして自分のサイトでコンテンツを複製することができます。
  2. 価格スクレイピング -価格データをスクレイピングすることにより、競合他社に関する情報を集約できます。これにより、各社は独自の利点を構築できます。
  3. 連絡先スクレイピング -多くのWebサイトには、メールアドレスと電話番号が平文で含まれています。オンライン従業員ディレクトリなどのロケーションをスクレイピングすることにより、スクレイパーは、連絡先の詳細情報を集約することができ、バルクメールのメーリングリスト、ロボコール、または悪意のあるソーシャルエンジニアリングの試みが可能になります。これは、スパマーと詐欺師の両方が新しい標的を見つけるために使用する主要な方法の1つです。

Webスクレイピングはどのように軽減できますか?

通常、Webサイト訪問者が見ることができるコンテンツはすべて訪問者の機械に転送する必要があるので、訪問者がアクセスできる情報はすべてボットによってスクレイピングすることができます。

発生する可能性のあるWebスクレイピングの量を制限する努力をすることは可能です。データスクレイピング作業への露出を制限する3つの方法を次に示します

  1. Rate Limiting要求 -Webサイト上の一連のWebページをクリックする人間の訪問者に関して、Webサイトの操作の速度はかなり予測可能です。たとえば、人間が1秒間に100のWebページを閲覧することはありません。一方、コンピューターは、人間よりもはるかに高速に要求を行うことができ、初心者のデータスクレイパーは、スロットルなしのスクレイピング技術を使用して、Webサイト全体を非常に迅速にスクレイピングしようとする場合があります。特定のIPアドレスが所定の時間窓にわたって行うことが可能な要求の最大数を律速することによって、Webサイトは搾取要求から自身を保護することができ、特定のウィンドウ内で発生するデータスクレイピングの量を制限することができます
  2. HTMLマークアップを定期的に変更する -データスクレイピングボットは、Webサイトのコンテンツを効果的に横断し、有用なデータを解析して保存するために、一貫したフォーマットに依存しています。このワークフローを中断する1つの方法は、HTMLマークアップの要素を定期的に変更することで一貫したスクレイピングをより複雑にすることです。HTML要素をネストしたり、マークアップの他の側面を変更したりすることにより、単純なデータスクレイピング作業が妨げられたり妨害されたりします。一部のWebサイトでは、Webページがレンダリングされるたびに、何らかの形のコンテンツ保護の変更がランダム化されて実装されます。他のWebサイトでは、より長期的なデータスクレイピング作業を防止するために、マークアップコードを時々変更します。
  3. 大量のリクエスターにCAPTCHAを利用する-Rate Limitingソリューションの使用に加え、コンテンツスクレイパーの速度を落とすもう1つの有用な手順は、Webサイトの訪問者がコンピューターでは乗り越えられない課題に答えるという要件です。人間はこの課題に合理的に答えることができますが、データスクレイピングに関与するヘッドレスブラウザ*は、おそらくそれはできず、多くの課題に一貫して回答することは間違いなくできません。ただし、CAPTCHAの継続的なチャレンジは、ユーザー体験に悪影響を及ぼす可能性があります。

もう1つのあまり一般的ではない軽減方法は、画像などのメディアオブジェクト内にコンテンツを埋め込むことです。コンテンツが文字列として存在しないため、コンテンツのコピーははるかに複雑で、画像ファイルからデータを引き出すために光学式文字認識(OCR)が必要です。しかし、これにより、住所や電話番号などのコンテンツを記憶したり再入力したりするのではなく、Webサイトからコピーする必要があるWebユーザーの妨げにもなります。

*ヘッドレスブラウザは、ChromeやFirefoxによく似たWebブラウザの一種ですが、デフォルトでは視覚的なユーザーインターフェイスを持たないため、通常のWebブラウザよりもはるかに高速に動作できます。基本的にコマンドラインのレベルで実行されるため、ヘッドレスブラウザはWebアプリケーション全体のレンダリングを回避できます。データスクレイパーは、スクレイピングされている各ページを見る人がいないため、ヘッドレスブラウザを使用するボットを作成してデータをより迅速に要求しようとします。

Webスクレイピングはどのように完全に阻止できますか?

Webスクレイピングを完全に阻止する唯一の方法は、コンテンツをWebサイトに一切配置しないことです。ですが、高度なボット管理ソリューションを使用することで、Webサイトがスクレイパーボットのアクセスをほとんど完全に排除するよう支援できる可能性があります。

データスクレイピングとデータクローリングの違いは?

クロールとは、Googlebotなどのロボットクローラーをネットワークに送信してインターネットコンテンツのインデックスを作成するときに、Googleなどの大規模な検索エンジンが実行するプロセスのことです。一方、スクレイピングは通常、特定のWebサイトからデータを抽出するために特別に構成されています。

Webクローラーボットの振る舞いとは異なるスクレイパーボットの3つの挙動があります。

  1. スクレイパーボットはWebブラウザを装います。クローラーボットはその目的を示して、Webサイトを騙してボットでないと思わせるようなことはしません。
  2. スクレイパーは、フォームに入力するなどの高度なアクションを実行したり、Webサイトの特定の部分に到達するように行動することがあります。クローラーはそうしません。
  3. 通常、スクレイパーはrobots.txtファイルを考慮しません。robots.txtファイルは、Webクローラーにどのデータを解析し、サイトのどの領域を回避するかを伝えるために特別に設計された情報を含むテキストファイルです。スクレーパーは特定のコンテンツを抽出するように設計されているため、無視するように明示的にマークされたコンテンツを抽出するように設計されている場合があります。

Cloudflare Bot Managementは、機械学習と行動分析を使用し、悪意のあるボットを識別して、スクレイピングなどから独自コンテンツを保護したりボットによるWebプロパティの悪用を防止します。