スクレイピング防止とその対策

元記事:https://jp.scrapestorm.com/tutorial/inteoduce-some-scraping-prevention-and-countermeasures/

ビッグデータ時代の到来に伴い、データ分析はますます人々に重視されるようになって行きます。ビッグデータには極めて高速に、多くの異なる形式で生成された大量のデータです。膨大なデータ量と複雑なデータ型があり、低値密度、データ処理の適時性などは、従来のデータの特性とは異なります。そして、多量のデータを収集するため、様々なWebスクレイピングツールが登場します。
今回は日常のスクレイピング中によくあるブロック手段と対策を紹介します。

よく見るブロック手段の紹介

1.キャプチャー
キャプチャー(Captcha)とは、「completely automated public Turing test to tell computers and humans apart」(コンピュータと人間を区別する完全に自動化された公開チューリングテスト)のバクロニムです。人々は簡単に画像を識別できますが、ロボットにとってそういう簡単ではありません。これはなぜキャプチャーはよくあるブロック手段の一つになるの原因です。だが、技術の発展につれて、ロボットの画像識別能力もどんどん増えていきます。将来、下記のようなキャプチャーが出で来るかもしれません。

画像1

2.IPのブロック
ブロック手段と言えば、よく見かけるのはやはりIPのブロックです。では、なぜIPのブロックは最も有効な手段でしょうか?クッキーなどの情報が偽造できますが、http請求に直接偽造できないのはIPだけです。定期的にWebサイトに膨大なリクエストを送信すると、このIPアドレスがWebサイトにロボットに認識されますかもしれません。一旦IPアドレスがロボットに疑われるなら、ブロックされる可能性がかなり高まります。

ブロッグを回避する方法

キャプチャーとIPのブロックはよくスクレイピングを邪魔して、人々を困らせます。下記には少しスクレイピング防止を回避する方法を紹介します。役に立つなら、幸いです。

1.スピードを落とす
高速でWebサイトから膨大なデータをスクレイピングすると、サーバーの負担が増加します。有名なのは男性が蔵書検索システムに高頻度のリクエストを故意に送りつけたとして偽計業務妨害容疑で逮捕されたlibrahack事件です。できるだけスクレイピングのスピードを控えてください。

2.ルーターを再起動する
ルーターを再起動するのはルーターの再起動時に送信されるフォームをシミュレートします。新たなダイナミックIPを手に入れと、簡単にWebサイトにブロックされるでしょう。

3.IPローテーション
IPアドレスがWebサイトに疑われて、接続を拒否しますの場合、他のIPアドレスを切り替え、スクレイピングをし続けるのがよく使えるブロック防止手段です。
下記はScrapeStormのIPローテーション方法です。
①時間よりIPアドレスを切り替える
プロキシを1分ごと、3分ごと、または5分ごとに切り替えるように設定できます。

画像2

②ページにテキストが表示されば、切り替え条件としてテキストを入力できます。
以下に示すように、切り替え条件を「表示されている画像の文字を以下に入力してください。」に設定すると、対応するテキストがページに表示されるとプロキシが切り替えられます。
詳細にはScrapeStorm公式サイトのチュートリアルをご参照ください。
IPローテーションを設定する方法

キャプチャー

4.UA
UA(英: user agent、日: 利用者エージェント)とは、利用者があるプロトコルに基づいてデータを利用する際に用いるソフトウェアまたはハードウェアのことです。
特にHypertext Transfer Protocolを用いてWorld Wide Webにアクセスする、ウェブブラウザなどのソフトウェアです。
下記はよく使えるUAをご参照ください。
Chrome
【Windows7】Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
【Windows10】Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

Firefox
【Windows7】Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
【Windows10】Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0

IE9
【Windows7】Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR

IE11
【Windows10】Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko