为什么python的urllib2.urlopen会给我403错误?

1 投票
1 回答
1772 浏览
提问于 2025-04-17 13:23

可能的重复问题:
Python的urllib2在某些网站上无法使用

好的,我想用Python访问这个网址:http://www.gocomics.com/wizardofid/2013/01/22

但是,每次我调用urllib2.urlopen('http://www.gocomics.com/wizardofid/2013/01/22').read()的时候,它都会给我一个403错误。用urllib的话,我只能看到错误页面,但urllib2会直接抛出错误。当我在Chrome浏览器中查看这个页面时,它没有任何问题。这是为什么呢?我该怎么解决这个问题呢?谢谢!

1 个回答

3

这个网站需要一个像浏览器那样的 User-Agent 头信息,否则它会拒绝你的访问。

你可以试着添加一个头信息,比如(例如)这样:

import urllib2

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib2.install_opener(opener)
print urllib2.urlopen('http://gocomics.com/wizardofid/2013/01/22').read()

撰写回答