Python urllib.error.HTTPError:HTTP错误405:不允许
你知道为什么这个脚本在试图打开url时会给出错误代码urllib.error.HTTPError:HTTP error 405:Not Allowed吗?在谷歌上找不到任何东西。该url使用Google Chrome正常打开。到今天为止,脚本已经正常运行了几个月 编辑:由于第一条评论,我成功地创建了一个脚本,修复了上面描述的问题。以下是使用Chrome检索到的包含必要cookie的脚本:Python urllib.error.HTTPError:HTTP错误405:不允许,python,http,urlopen,Python,Http,Urlopen,你知道为什么这个脚本在试图打开url时会给出错误代码urllib.error.HTTPError:HTTP error 405:Not Allowed吗?在谷歌上找不到任何东西。该url使用Google Chrome正常打开。到今天为止,脚本已经正常运行了几个月 编辑:由于第一条评论,我成功地创建了一个脚本,修复了上面描述的问题。以下是使用Chrome检索到的包含必要cookie的脚本: import urllib.request url = 'http://www.oddsportal.co
import urllib.request
url = 'http://www.oddsportal.com/ajax-next-games/1/0/1/20130820/'
print(url)
page = urllib.request.urlopen(url)
print(page)
删除cookie头将导致检索不需要的网页,并在脚本的最后一行显示“ROBOTS”等。为什么Cookiejar不自动存储cookie
编辑2:显然cookie会定期更改,因此必须自动检索。但是怎么做呢?也许该页面已经开始根据您的用户代理更改结果了?您可以研究将用户代理头添加到请求中,看看这是否可以修复它。这与不允许的方法不同。我从一个不喜欢机器人解析JSON文件的站点收到了这个错误。更改用户代理可能会修复它。你可能还需要饼干。非常感谢你们两位!更改用户代理阻止了错误的发生。然而,检索到的页面不是我想要的。将cookie数据添加到标头解决了这一问题。我使用Google Chrome调试工具找到了必要的cookie数据。出于某种原因,http.cookiejar.cookiejar没有存储这些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