Web HTTP错误403:robots.txt不允许请求';生成?

Web HTTP错误403:robots.txt不允许请求';生成?,web,html-parsing,web-crawler,robots.txt,mechanize-python,Web,Html Parsing,Web Crawler,Robots.txt,Mechanize Python,可能重复: 我正在尝试使用Mechanize来自动化站点上的一些工作。通过使用br.set\u handle\u robots(False),我成功地绕过了上述错误。使用它有多道德 如果不是的话,那么我想遵守“robots.txt”,但我试图机械化的网站阻止我查看robots.txt,这是否意味着不允许机器人查看它? 我下一步该怎么做 提前感谢。有关您的第一个问题,请参阅 你需要记住这个计划的目的。在网站上爬行的机器人可能会破坏网站,并从根本上造成拒绝服务攻击。因此,如果你的“自动化”正在爬行

可能重复:

我正在尝试使用Mechanize来自动化站点上的一些工作。通过使用br.set\u handle\u robots(False),我成功地绕过了上述错误。使用它有多道德

如果不是的话,那么我想遵守“robots.txt”,但我试图机械化的网站阻止我查看robots.txt,这是否意味着不允许机器人查看它? 我下一步该怎么做


提前感谢。

有关您的第一个问题,请参阅

你需要记住这个计划的目的。在网站上爬行的机器人可能会破坏网站,并从根本上造成拒绝服务攻击。因此,如果你的“自动化”正在爬行,或者每天下载的网页不止几页,而网站上有一个robots.txt文件将你排除在外,那么你应该尊重它

就我个人而言,我发现了一些灰色地带。如果我的脚本与使用浏览器的人类脚本运行速度相同,并且只抓取了几页,那么本着机器人排除标准的精神,只要每天访问站点不超过一次,我就可以删除这些页面。在评判我之前,请仔细阅读最后一句话。我觉得这是完全合乎逻辑的。不过,很多人可能不同意我的观点

对于第二个问题,web服务器能够根据随请求发送的HTTP头的用户代理属性返回403。为了让脚本模拟浏览器,您必须忽略表示自己。也就是说,您需要将HTTP header User Agent属性更改为与主流web浏览器(如Firefox、IE、Chrome)使用的相同。现在它可能会说“机械化”


一些网站比这更复杂,并且有其他检测非人类访客的方法。在这种情况下,放弃吧,因为他们真的不希望你以那种方式访问网站

有关第一个问题,请参见

你需要记住这个计划的目的。在网站上爬行的机器人可能会破坏网站,并从根本上造成拒绝服务攻击。因此,如果你的“自动化”正在爬行,或者每天下载的网页不止几页,而网站上有一个robots.txt文件将你排除在外,那么你应该尊重它

就我个人而言,我发现了一些灰色地带。如果我的脚本与使用浏览器的人类脚本运行速度相同,并且只抓取了几页,那么本着机器人排除标准的精神,只要每天访问站点不超过一次,我就可以删除这些页面。在评判我之前,请仔细阅读最后一句话。我觉得这是完全合乎逻辑的。不过,很多人可能不同意我的观点

对于第二个问题,web服务器能够根据随请求发送的HTTP头的用户代理属性返回403。为了让脚本模拟浏览器,您必须忽略表示自己。也就是说,您需要将HTTP header User Agent属性更改为与主流web浏览器(如Firefox、IE、Chrome)使用的相同。现在它可能会说“机械化”

一些网站比这更复杂,并且有其他检测非人类访客的方法。在这种情况下,放弃吧,因为他们真的不希望你以那种方式访问网站