1

所以我试图从这个网站http://dl.acm.org/dl.cfm解析。这个网站不允许网络爬虫,所以我得到了一个HTTP error: 403 forbidden.

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

我什至无法使用urllib2.urlopen()函数打开 html 页面,它给出了同样的错误。

谁能帮我解决这个问题?

4

1 回答 1

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

于 2012-07-27T23:29:41.320 回答