スクレイピングで遮断されるのを防ぐ効果があるんです。

なんでこんなことを?

スクレイピングをしていた際に、あるサイトからデータの取得をしようとしたところ、特定回数で遮断されてしまいました。理屈を考えるとIPで遮断すると失うものも大きい(スマホなどの影響で)だろうし、たぶんuser agentも見ていると判断して、user agentをアクセス回数ごとに切り替えるようにしたらうまくいきました。

今回は、そのuser agentを変更する方法をメモしておきます

ini_setをスクリプトの中で設定することでできた

記載方法はそんなに難しくなくて、user agentの文字列を設定するだけです。

$fake_user_agent = "Mozilla/6.2 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11";

ini_set('user_agent', $fake_user_agent);

これだけで大丈夫。

このuser agentの文字列を私はmysqlに50パターンぐらいいれておいて、最初に使った時間、最後に使った時間、アクセスした回数を記録しつつ、アクセス回数が一定回数を超えたら、使えるuser agentを取得して〜の繰り返しで乗り越えられました。

メモがてら。

コメント