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

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

Share facebook icon linkedin icon twitter icon email icon

データスクレイピング

学習目的

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

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

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

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

データスクレイピング

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サイトの操作速度はほぼ予測可能です。たとえば、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プロパティの悪用を防止します。