我是新来抓取,最近我意识到,线程可能是快速抓取网站的方法。在我开始讨论这个问题之前,我认为确定这个问题是否会最终导致我扼杀是很明智的。所以问题是,如果我重写我的程序以使用线程更快地抓取,是否会违反大多数网站的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