是否存在一个前向代理服务器,它将在远程internet域上查找和服从robots.txt文件,并代表通过代理的请求者执行它们?
例如,假设www.example.com的一个网站有一个robots.txt文件,该文件限制特定的URL,并将爬行延迟应用于其他网站。
多个自动客户端(例如爬虫、刮刀)可以通过代理访问www.example.com的网站,而不违反robots.txt指令,也不需要访问文件本身(=>更简单的客户端和更少的获取robots.txt的请求)。
(具体来说,我看的是规范的"GYM2008“版本- http://nikitathespider.com/python/rerp/#gym2008 --因为它被广泛使用)
发布于 2012-01-03 18:26:48
我不知道为什么执行对robots.txt的遵从是代理的工作:爬虫(机器人)应该提取robots.txt并遵循文件中包含的指令,所以只要代理返回正确的robots.txt数据,爬虫对数据做正确的事情,只要爬虫支持使用代理,您就可以获得代理的所有好处,而不需要工作。
**
尽管如此,我不知道有哪个代理会做您想要的事情(从一个站点解析robots.txt,只返回该文件允许的内容--大概是为了控制不尊重robots.txt的爬虫机器人?)。编写一个代理来处理这个问题需要对代理接收到的每一个请求执行一个用户代理到robots.txt映射/检查,这当然是可能的(您可以在Squid中这样做,但是您需要一起编写一个脚本来将robots.txt转换成鱿鱼配置规则并定期更新该数据),但这无疑会对代理产生很大的影响。
修复爬虫是更好的解决方案(它还避免了由代理发送给爬虫的“陈旧”数据。请注意,一个好的爬虫机器人将检查HTTP头中的更新时间,并且只在它们更改时获取页面.)
https://serverfault.com/questions/346213
复制相似问题