HTTP错误:403解析网站时

时间:2012-07-27 23:13:57

标签: postgresql python-2.7 beautifulsoup mechanize

所以我试图从这个网站http://dl.acm.org/dl.cfm解析。这个网站不允许使用网络抓取工具,因此我得到了HTTP error: 403 forbidden.

我正在使用python,所以我尝试使用机械化填充表单(自动填写表单或点击按钮),但是我又遇到了同样的错误。

我甚至无法使用urllib2.urlopen()函数打开html页面,它也会出现同样的错误。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

如果网站不允许网络抓取器/机器人,您不应该在网站上使用机器人开始。

但是为了回答你的问题,我怀疑该网站正在阻止urllib的默认用户代理。您可能不得不通过制作自己的请求将用户代理欺骗到已知的浏览器。

headers = {"User-Agent":"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"}
req = urllib2.Request("http://dl.acm.org/dl.cfm", headers=headers)
urllib2.urlopen(req)
编辑:我测试了这个并且它有效。该网站正在积极阻止基于用户代理,以阻止严重机器人忽略robots.txt