py-py’s blog

何か書くよ

urllib.request.urlopen()で特定のサイトが開かない場合

よくあるある。

記事書いたか覚えないけど、覚えてないことはまた書いておこう。

題名の通りで

  • urlopen()で開かない
  • timeout=nを指定してもだめ

な時にはUser-Agent情報を付与すること。

from urllib.request import urlopen

url = "hogehoge"
reqeust = urlopen(url)

とするが、User-Agentを付けるときは

headersを定義して、それをurlとともにRequestクラスの引数に与えること。

from urllib.request from urlopen
from urllib.request from Request

url = "hogehoge"
headers = {
    "User-Agent": "XXXX"
}

request = Request(url=url, headers=headers)
result = urlopen(request, timeout=5)

User-Agentの取得方法は以下を参考。

utaukitune.ldblog.jp