我是新來抓取,最近我意識到,線程可能是快速抓取網站的方法。在我開始討論這個問題之前,我認爲確定這個問題是否會最終導致我扼殺是很明智的。所以問題是,如果我重寫我的程序以使用線程更快地抓取,是否會違反大多數網站的robots.txt?線程是否違反了robots.txt?
3
A
回答
1
取決於:如果您的線程擁有自己的單獨隊列以便進行爬網,並且在任何類型的隊列之間沒有同步,那麼當兩個(或更多)線程嘗試執行時,最終可能會違反站點的robots.txt快速連續抓取同一網站的網址。當然a well designed crawler不會那樣做!
非常「簡單」的搜尋器具有某種共享優先級隊列,根據各種機器人排除協議對工作進行排隊,並且所有線程都會從該隊列中抓取要爬網的URL。這種方法存在許多問題,特別是在嘗試擴展和爬行整個世界網絡時。
更高級的抓取工具可以執行「預算」計算(see the BEAST budget enforcement section),這使得他們可以根據各種標準智能計劃抓取:垃圾郵件指標,robots.txt,覆蓋率與新鮮度等。預算執行使多線程爬蟲更容易快速爬行,禮貌地爬行!
0
他們是無關的。 robots.txt表示您是否被允許訪問某些內容。它沒有辦法說「請只發送一個請求」。
相關問題
- 1. 自動檢查是否違反了android:minSdkVersion
- 2. 這是否違反了EJB限制?
- 3. 這是否違反了德米特法?
- 4. 反射是否違反LSP?
- 5. DbFunctions類是否違反SRP
- 6. cordova webview是否違反csp
- 7. 違反了插入
- 8. 從ViewModel訪問數據庫是否違反了MVC原則?
- 9. 標題中的字符串 - 這是否違反了ODR?
- 10. IClientValidatable實現是否違反了MVC中的DRY原則?
- 11. 數據ID是否違反了關注點分離問題
- 12. GWT的ActivityMapper是否違反了Liskov替換原則?
- 13. OData是否違反了關注點分離?
- 14. 這是否確實違反了MVC分離問題
- 15. Scala的BigDecimal是否違反了equals/hashCode合約?
- 16. Arrays.asList是否違反了Liskov替換原則?
- 17. QTreeView中的setModel是否違反了以前的模型索引?
- 18. 數據庫規範化 - 這個例子是否違反了1NF?
- 19. JSTL sql:查詢是否違反了MVC原則?
- 20. 這是否違反了概念完整性?
- 21. RSpec DSL是否違反了Demeter的規律?
- 22. NSTemporaryDirectory()是否違反了Mac App Store指南?
- 23. 新複製的文件是否違反了導入規則?
- 24. 這是否違反了「最左邊最長」的原則?
- 25. dataannotations是否違反了關注點分離? - asp.net mvc
- 26. 違反了select語句
- 27. 違反了同源策略?
- 28. 瞭解違反約束SQL
- 29. 自定義HTML幫助程序類是否違反了ASP.NET MVC模型?
- 30. ToString()方法是否違反SRP?
此網站上至少有一條爬行延遲線:http://www.bhphotovideo.com/robots.txt。我認爲這是標準。 – 2011-06-06 18:05:36
這裏你去:http://en.wikipedia.org/wiki/Robots_exclusion_standard#Crawl-delay_directive – 2011-06-06 18:07:22