\

PythonでWebスクレイピングを行う際、urllibライブラリを使用することがよくあります。しかし、特定のWebサイトにアクセスしようとすると、HTTP Error 403: Forbiddenというエラーが発生することがあります。

このエラーは、Webサーバが「非ブラウザ」のリクエストを許可しない設定になっている場合に発生します。具体的には、PythonからのリクエストのデフォルトのHTTPヘッダーが次のようになっており、非ブラウザのリクエストになっています。

'User-Agent': 'python-requests/2.13.0'

この問題を解決するためには、HTTPリクエストヘッダーの内容を「ブラウザ」リクエストとして明示的に書き換えてリクエストを送る必要があります。以下に、その方法を示します。

import urllib.request

url = "http://example.com"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36"}
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)

このコードでは、User-AgentヘッダーをMozilla Firefoxのものに偽装しています。これにより、Webサーバはこのリクエストをブラウザからのものと認識し、HTTP Error 403: Forbiddenエラーを回避できます。

以上が、Pythonとurllibを使用してHTTP Error 403: Forbiddenエラーを解決する方法です。この情報がPythonでWebスクレイピングを行う際の参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です