urllibでユーザーエージェントを変更する

2015年5月4日
1 分

Python の urllib.urlopen や urllib.urlretrieve で URL にアクセすると、FancyURLopener オブジェクトが生成されて、これが目的の URL にアクセスする。ユーザーエージェントの値もこの FancyURLopener オブジェクトが持っている。なので、これを変えてやればいい。次のように FancyURLopener のサブクラスを作ってユーザーエージェントの値を設定し、urllib._urlopenr に代入してやればいい。

class Myopener(urllib.FancyURLopener):
    version = "Mozilla"

urllib._urlopener = Myopener()

これで、urllib のデフォルトでは跳ね返されてしまう URL にもアクセスできるようになる。

参考ページ:

cf. http://docs.python.jp/2/library/urllib.html#urllib._urlopener