HTTP错误403:请求被robots.txt禁止'是从哪个方面产生的?
我正在尝试使用Mechanize来简化一些日常操作。我通过使用br.set_handle_robots(False)
成功绕过了那个错误。关于使用这个工具的伦理问题也有很多讨论。我想知道的是,这个错误是我这边产生的,还是在服务器那边产生的?我的意思是,Mechanize是在看到某些robots.txt
规则时抛出异常,还是服务器在检测到我使用自动化工具时拒绝了请求?
2 个回答
0
服务器用这样的回应来阻止你的活动。
这是你自己的网站吗?如果不是,请遵循以下规则:
- 遵守
robots.txt
文件的规定 - 在请求之间加点延迟,即使
robots.txt
文件没有要求这样做。 - 在用户代理头中提供一些联系信息(比如电子邮件或页面网址)。
否则,网站的拥有者可能会根据用户代理、IP地址或其他他认为能区分你和正常用户的信息来封锁你。
2
服务器会识别用户代理(user-agent)。如果这个用户代理和robots.txt文件中的某个匹配,那么这些规则就会被客户端应用。默认情况下,mechanize返回的是“Python-urllib/2.7”。
可以查看这个链接了解更多信息:http://en.wikipedia.org/wiki/Robots_exclusion_standard