使用Mechanize进行刮擦,遇到HTTP错误403

时间:2015-10-04 12:40:52

标签: python web-scraping mechanize robots.txt

获得

之后
  

mechanise._response.httperror_seek_wrapper:HTTP错误403:请求   robots.txt禁止使用

使用Mechanize时,添加Screen scraping: getting around "HTTP Error 403: request disallowed by robots.txt"的代码以忽略robots.txt,但现在收到此错误:

  

mechanize._response.httperror_seek_wrapper:HTTP错误403:禁止

有没有解决此错误的方法?

(当前代码)

br = mechanize.Browser()
br.set_handle_robots(False)

2 个答案:

答案 0 :(得分:2)

在上面发布的两行当前代码下面添加这行代码解决了我遇到的问题:

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

答案 1 :(得分:0)

  

HTTP错误403:robots.txt不允许请求

在这里令人困惑和语义错误。这不是服务器返回HTTP 403错误,而是基于解析robots.txt文件从客户端返回的虚构/硬编码403

这个库违反了最基本的HTTP规范。 HTTP服务器为客户端的特权创建HTTP错误。它们不应由客户创建。这就像在高速公路上以错误的方式行驶并指责其他司机。