是否存在检查并遵守远程域上的 robots.txt 的正向 Web 代理?

是否存在检查并遵守远程域上的 robots.txt 的正向 Web 代理?

是否存在一个正向代理服务器,它可以查找和遵守robots.txt远程互联网域上的文件,并代表通过代理的请求者强制执行这些文件?

例如,想象 www.example.com 网站上有一个文件,该robots.txt文件限制某些 URL 并对其他 URL 应用抓取延迟。

然后,多个自动客户端(例如爬虫、抓取工具)可以通过代理访问 www.example.com 网站,而不会违反指令robots.txt,也不必自己访问文件(=> 客户端更简单,获取的请求更少robots.txt

(具体来说,我正在查看“GYM2008”版本的规范 -http://nikitathespider.com/python/rerp/#gym2008- 因为它被广泛使用)

答案1

我不确定为什么强制遵守robots.txt是代理人的工作:爬虫(机器人)应该拉取robots.txt并遵循该文件中包含的指令,因此只要代理返回正确的robots.txt数据,爬虫做正确的事有了这些数据,只要爬虫支持使用代理,您就可以获得代理的所有好处,而无需做任何工作。

**

话虽如此,我不知道有哪个代理可以满足您的要求(解析来自网站的 robots.txt 并仅返回该文件允许的内容 - 大概是为了控制不尊重 的爬虫机器人robots.txt?)。编写处理此问题的代理需要对代理收到的每个请求执行 user-agent-to-robots.txt 映射/检查,这当然是可能的(您可以在 Squid 中执行此操作,但您需要编写一个脚本将 robots.txt 转换为 squid 配置规则并定期更新该数据),但无疑会降低代理的效率。
修复爬虫是更好的解决方案(它还可以避免代理将“过时”的数据发送到爬虫。请注意,好的爬虫机器人会检查 HTTP 标头中的更新时间,并且仅获取发生变化的页面...)

相关内容