我有一段python代码可以发出http get请求。 我可以成功地向 http://google.com 这样的 URL 发出请求并下载他们的页面。但我无法向 http://stackoverflow.com 发出获取请求.它显示 HTTP 403 forbidden ERROR。 但是我可以从我的浏览器访问 stackoverflow。那么这个错误的原因可能是什么?
代码:
导入 urllib2
c=urllib2.urlopen('https://stackoverflow.com/')
内容=c.read()
打印内容[0:50]
错误: HTTPError:HTTP 错误 403:禁止访问
最佳答案
同样,我使用的是 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 会根据 User-Agent 过滤请求,而 google.com 不会这样做。
urllib2‘s default user agent string is "Python-urllib/2.6" (on Python 2.6)
关于http - 无法向 SO 发出 http get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029440/