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