是否存在用於檢查並遵守遠端域上的 robots.txt 的轉發 Web 代理?
是否存在一個轉發代理伺服器,它將查找和服從
robots.txt
遠端 Internet 域上的文件並代表通過代理的請求者執行它們?例如,想像一個位於 www.example.com 的網站,它有一個
robots.txt
限制某些 URL 並將 Crawl-Delays 應用於其他 URL 的文件。然後,多個自動客戶端(例如爬蟲、爬蟲)可以通過代理訪問 www.example.com 上的網站,而不會違反
robots.txt
指令並且不必自己訪問文件(=> 更簡單的客戶端和更少的獲取請求robots.txt
)(具體來說,我正在查看規範的“GYM2008”版本 - http://nikitathespider.com/python/rerp/#gym2008 - 因為它被廣泛使用)
我不確定為什麼強制遵守
robots.txt
將是代理的工作:爬蟲(機器人)應該拉動robots.txt
並遵循該文件中包含的說明,只要代理返回正確的robots.txt
數據並且爬蟲執行有了這些數據,只要爬蟲支持使用代理,您就可以獲得代理的所有好處,而無需任何工作*。***
也就是說,我不知道有任何代理可以滿足您的要求(從站點解析 robots.txt,並且只返回該文件允許的內容——大概是為了控制不具備的爬蟲機器人)不尊重
robots.txt
?)。編寫處理此問題的代理需要對代理接收的每個請求進行 user-agent-to-robots.txt 映射/檢查,這當然是可能的(您可以在 Squid 中執行此操作,但您需要將腳本將 robots.txt 轉換為 squid 配置規則並定期更新該數據),但無疑會影響代理的效率。修復爬蟲是更好的解決方案(它還可以避免代理向爬蟲發送“陳舊”數據。請注意,一個好的爬蟲機器人將檢查 HTTP 標頭中的更新時間,並且僅在頁面發生更改時才獲取頁面…)