1. ホーム
  2. python

Python 3 で urrlib.request.urlopen のユーザーエージェントを変更する

2023-10-24 14:02:32

質問

を使ってURLを開きたいのですが urllib.request.urlopen('someurl') :

with urllib.request.urlopen('someurl') as url:
b = url.read()

以下のようなエラーが出続けています。

urllib.error.HTTPError: HTTP Error 403: Forbidden

私はこのエラーが、ボットがネットワークリソースを浪費するのを防ぐために、サイトがパイソンにアクセスさせないためであることを理解しています。私は検索して、urllibのユーザーエージェントを変更する必要があることを発見しました。しかし、ユーザーエージェントを変更する方法として私が見つけたこの問題のすべてのガイドと解決策は、urllib2であり、私はpython 3を使用しているので、すべての解決策は動作しません。

どのように私は python 3 でこの問題を解決することができますか?

どのように解決するのですか?

からの Python ドキュメント :

import urllib.request
req = urllib.request.Request(
    url, 
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
print(f.read().decode('utf-8'))