HTTP错误403:robots.txt生成的请求是否被禁止?

时间:2012-08-30 09:22:30

标签: web html-parsing web-crawler robots.txt mechanize-python

  

可能重复:
  Ethics of Robots.txt

我正在尝试使用Mechanize来自动化网站上的某些工作。我已设法通过使用br.set_handle_robots(False)绕过上述错误。使用它有多道德?

如果没有,那么我想要服从'robots.txt',但我试图机械化的网站阻止我查看robots.txt,这是否意味着没有机器人可以使用它? 什么应该是我的下一步?

提前致谢。

1 个答案:

答案 0 :(得分:1)

关于第一个问题,请参阅Ethics of robots.txt

您需要牢记robots.txt的目的。爬行站点的机器人可能会破坏站点上的破坏并导致DoS攻击。因此,如果您的“自动化”完全爬行或者每天下载的页面超过几页,并且该网站有一个排除您的robots.txt文件,那么您应该尊重它。

就个人而言,我发现有一点灰色区域。如果我的脚本使用浏览器以与人类相同的速度工作,并且只抓取几页,那么我,根据机器人排除标准的精神,只要删除页面就没有问题它不会每天访问该网站超过一次。在评判我之前,请仔细阅读最后一句话。我觉得这是完全合乎逻辑的。但是很多人可能不同意我的意见。

对于第二个问题,Web服务器可以根据您的请求发送的HTTP标头的User-Agent属性返回403。为了让您的脚本模仿浏览器,您必须错过代表自己。这意味着,您需要将HTTP标头User-Agent属性更改为与主流Web浏览器(例如,Firefox,IE,Chrome)使用的属性相同。现在它可能会说“机械化”。

有些网站比这更复杂,还有其他检测非人类访问者的方法。在这种情况下,请放弃,因为他们真的不希望您以这种方式访问​​网站。