我正在爬取一些網頁並解析其中的一些數據,但其中一個網站似乎阻止了我的請求。使用Python 3和urllib.requests的代碼版本工作正常。我的問題是我需要使用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的版本 –