首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >网络爬虫对服务器的连续请求之间的最小延迟

网络爬虫对服务器的连续请求之间的最小延迟
EN

Stack Overflow用户
提问于 2012-10-10 18:16:32
回答 2查看 685关注 0票数 0

我已经建立了一个多线程的网络爬虫,使请求从相应的服务器获取网页。因为它是多线程的,所以会使服务器不堪重负。由于哪个服务器可以阻止爬虫(礼貌)。

我只想添加功能的结果请求之间的最小延迟到相同的服务器。是否可以将来自每个服务器(域)的robot.txt的最小延迟存储到HashMap中,并将其与向该特定服务器发出的请求的最后时间进行比较?

如果在robot.txt中没有指定延迟,该怎么办?

EN

回答 2

Stack Overflow用户

发布于 2012-10-10 18:57:58

事实上的标准robots.txt文件格式并没有指定请求之间的延迟。它是一个非标准的扩展。

没有"Crawl-delay“指令并不意味着您可以随心所欲地敲打服务器。

是否可以将来自每个服务器(域)的robot.txt的最小延迟存储到HashMap中,并将其与向该特定服务器发出的请求的最后时间进行比较?

这是不够的。对于robots.txt不使用非标准指令的情况,还需要实现两次请求之间的最短时间。你也应该尊重503响应中的“Retry After”头。

理想情况下,您还应该注意响应请求所用的时间。响应缓慢是拥塞或服务器过载的潜在指示,如果您的爬虫被认为是拥塞的原因,则站点管理员更有可能阻止爬虫。

票数 1
EN

Stack Overflow用户

发布于 2012-10-15 17:20:07

我使用0.5秒作为我的网络爬虫的延迟。使用它作为默认值,如果指定了它,您应该使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12816998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档