武器商人@Pythonのブログ

Pythonを好んで使っているプログラマです。Pythonこそが最強のプログラミング言語だと思っています。Pythonは使いやすいです。Pythonは書きやすいです。Pythonは読みやすいです。Pythonはパワフルです。Pythonは一貫性があります。Pythonが好きです。

UserAgentを上手いこと誤魔化すfake-useragent

スポンサーリンク

スクレイピングをするときに必須というわけではないのだが、UAは設定した方がいい。サイトの運営者であれば、ボットからのアクセスと人間からのアクセスはすぐにわかる。なるべく人間に似せるように設定してあげるのがポイントだと思う。UAを設定すること自体は簡単なのだけれども、どのUAを設定するかを調べるのが面倒臭い。

そこで、fake-useragentが使える!!!

>>> from fake_useragent import UserAgent
>>> UA = UserAgent()
>>> UA.ie
u'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'
>>> UA.opera
u'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'
>>> UA.chrome
u'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1866.237 Safari/537.36'

こんな感じで、UAに良さげな文字列を返してくれる。
※余談だが、UserAgent()のコンストラクタが意外と重たかった。簡単な文字列を返却するだけではなく、中でいろいろやっているのだろう。

UAをアップデートすると、返却される情報が変わるようだ。

>>> UA.update()
>>> UA.ie
u'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MS-RTC LM 8)'
>>> UA.opera
u'Opera/9.80 (Windows NT 6.0; U; en) Presto/2.8.99 Version/11.10'
>>> UA.chrome
u'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36'

めちゃくちゃ便利だね!!!