我是新來抓取,最近我意識到,線程可能是快速抓取網站的方法。在我開始討論這個問題之前,我認爲確定這個問題是否會最終導致我扼殺是很明智的。所以問題是,如果我重寫我的程序以使用線程更快地抓取,是否會違反大多數網站的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. 這是否違反了德米特法?
- 2. 自動檢查是否違反了android:minSdkVersion
- 3. 這是否違反了EJB限制?
- 4. DbFunctions類是否違反SRP
- 5. 這是否違反了「最左邊最長」的原則?
- 6. 數據庫規範化 - 這個例子是否違反了1NF?
- 7. 這是否違反了概念完整性?
- 8. 這是否確實違反了MVC分離問題
- 9. dataannotations是否違反了關注點分離? - asp.net mvc
- 10. 數據ID是否違反了關注點分離問題
- 11. 從ViewModel訪問數據庫是否違反了MVC原則?
- 12. Scala的BigDecimal是否違反了equals/hashCode合約?
- 13. RSpec DSL是否違反了Demeter的規律?
- 14. 瞭解違反約束SQL
- 15. 違反了同源策略?
- 16. 違反了select語句
- 17. 自定義HTML幫助程序類是否違反了ASP.NET MVC模型?
- 18. Python __init___:這是否違反約定?
- 19. ToString()方法是否違反SRP?
- 20. 裝飾者模式是否違反SRP?
- 21. 函數參數是否違反封裝?
- 22. 這兩個類是否違反封裝?
- 23. 防禦性編程是否違反DRY原則?
- 24. 是否違反Apache Beam編程模型來調用API?
- 25. 爲了表現,你會否違反REST的冪等原則?
- 26. DotNetOpenAuth「違反了繼承安全規則」
- 27. catch違反了語義逼近順序?
- 28. 函數返回後違反了R0
- 29. 唯一約束違反了空表
- 30. JPA:限制違反了刪除
此網站上至少有一條爬行延遲線: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