无法向SO发出http get请求

时间:2016-01-27 05:20:56

标签: http http-status-code-403

我在python中有一段代码可以生成http get请求。 我可以成功地向http://google.com这样的网址发送请求并下载他们的网页。但我无法向http://stackoverflow.com提出请求。它显示HTTP 403禁止ERROR。 但是我可以从浏览器访问stackoverflow。那么这个错误的原因可能是什么?

的代码:

import urllib2
C = urllib2.urlopen(' https://stackoverflow.com/')
内容= c.read()
打印内容[0:50]

错误:的 HTTPError:HTTP错误403:禁止

1 个答案:

答案 0 :(得分:5)

在这里,我正在使用Python 3。

urllib.request.urlopen('http://stackoverflow.com')因HTTP错误403失败。

我更改了User-Agent,然后它工作了:

import urllib.request
urllib.request.urlopen(urllib.request.Request('http://stackoverflow.com/',headers={'User-Agent':'Mozilla/5.0'}))

所以看来stackoverflow.com会根据用户代理过滤请求,而google.com也不会这样做。

  

urllib2的默认用户代理字符串是“Python-urllib / 2.6”(在Python上   2.6)

来源:https://docs.python.org/2/library/urllib2.html