私はいくつかのWebページをクロールしていて、それらのデータを解析していますが、サイトの1つが私の要求をブロックしているようです。 urllib.requestsでPython 3を使用しているコードのバージョンは正常に動作します。私の問題は、Python 2.7を使う必要があり、urllib2を使って応答を得ることができないということです。Python 2.7でurllib.requestsを再作成するにはどうすればよいですか?
これらの要求は同一ではないでしょうか?
のPython 3バージョン:
def fetch_title(url):
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'
}
)
html = urllib.request.urlopen(req).read().encode('unicode-escape').decode('ascii')
return html
のPython 2.7バージョン:
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [(
'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'
)]
response = opener.open('http://website.com')
print response.read()
一般的に最善の答えが*への洞察を提供し、私は両方のバージョンからの応答を得るかが、私はurllib.requestsとコンテンツの完全なページを取得し、私はurllib2のバージョン –