urllib2和wget返回HTTP 403(禁止),而浏览器返回OK

时间:2012-12-03 05:24:20

标签: python http-headers httprequest urllib2 http-status-code-403

我的浏览器可以访问一个网页,但urllib2.urlopen()(Python)和wget都返回HTTP 403(禁止访问)。有没有办法弄清楚发生了什么?

我正在使用最原始的表单,例如urllib2.urlopen("http://test.com/test.php"),对浏览器和wget使用相同的网址(http://test.com/test.php)。我在测试前已经在浏览器中清除了所有的cookie。

非常感谢!

2 个答案:

答案 0 :(得分:2)

Python库urllib有一个默认的用户代理字符串,其中包含单词Python,而wget使用“wget / VERSION”。如果您正在进行的网站检查用户代理信息,它可能会拒绝这两个。例如,Google会这样做。

很容易修复..对于wget,使用-U参数,对于urllib,使用适当的字符串创建一个URLOpener。

答案 1 :(得分:0)

有些网站不允许网页抓取。尝试使用Python requests

这个库应该可以工作。