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

攻撃者は意図された速度より速くデータにアクセスするために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. - 価格データを抽出することによって、競合他社は競争に関する情報を集めることができます。その結果、競合他社に独自の利点をもたらすことがあります。
  4. 連絡先情報のスクレイピング
  5. - 多くの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サイトからコピーできないために、妨害となってしまいます。

*「ヘッドレスブラウザ」はChromeやFirefoxのような一種のWebブラウザですが、視覚的なデフォルトのユーザーインタフェースを持たず、よく使われているWebブラウザより非常に高速で移動することが可能になっています。コマンドラインのレベルで作動することによって、ヘッドレスブラウザは、Webアプリケーション全体を表示しないようにすることができます。データスクレイパーは、同じようにヘッドレスブラウザをより速く使用し、データをリクエストするボットを書きます。スクレイピングされている各ページを見る人間はいないからです。

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

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

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

クローリングは、Googleのような大手の検索エンジンがインターネットコンテンツにインデックスを付けるために、ネットワークにGooglebotのようなロボットクローラーを送信するプロセスを指します。他方で、スクレイピングは通常、特定のWebサイトからデータを抽出するために組み立てられます。

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

  1. スクレイパーボットはWebブラウザを装います。クローラーボットはWebサイトを騙してボットでないふりをせず、その目的を示します。
  2. 時々、スクレイパーは、フォーム入力や問題に回答するなど、Webサイトのある部分に到着するために高度な処置を講じます。クローラーはこうした動作は行いません。
  3. スクレイパーは通常、どのデータを解析しサイトのどのエリアを回避するべきであるかWebクローラーに伝えることを目的としたテキストファイルである「robots.txtファイル」の情報を無視します。スクレイパーが具体的なコンテンツを抽出することを目指しているので、無視されるように明示的にマークされたコンテンツを抽出しようとするかもしれませfん。

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