import urllib.request
url = 'http://www.oddsportal.com/ajax-next-games/1/0/1/20130820/'
print(url)
page = urllib.request.urlopen(url)
print(page)
在尝试打开网址时,知道为什么这个脚本会出现错误代码“urllib.error.HTTPError:HTTP Error 405:Not Allowed”?找不到谷歌的任何东西。该网址会在Google Chrome中正常打开。该脚本已经正常工作了几个月,直到今天。
编辑:感谢第一条评论,我设法创建了一个修复上述问题的脚本。这是使用Chrome检索到的必要cookie的脚本:
import urllib.request
import http.cookiejar
url = 'http://www.oddsportal.com/ajax-next-games/1/0/1/20130820/'
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-Agent', 'Mozilla/5.0')]
opener.addheaders = [('Cookie', 'D_UID=F1BC6DD9-DF9C-380C-A513-6124F4C86999')]
for cookie in cj:
print(cookie.name, cookie.value)
print(opener.open(url).read()[:50]) # the full page is very long
删除cookie标题会导致检索到不需要的网页(在脚本的最后一行显示“ROBOTS”等)。为什么Cookiejar不会自动存储该cookie?
编辑(2):显然,cookie会定期更改,因此必须自动检索。但是如何?