3

我正在与一位图书管理员合作,重新构建他所在组织的数码摄影档案。

我已经用MechanizeBeautifulSoup构建了一个 Python 机器人,可以从集合中提取大约 7000 个结构不良和轻微不正确/不完整的文档。数据将被格式化为一个电子表格,他可以用它来纠正它。现在我估计总共有 7500 个 HTTP 请求来构建搜索字典,然后收集数据,不计算我的代码中的错误和重做,随着项目的进展,还有更多。

我假设对我发出这些请求的速度有某种内置限制,即使没有,我也会给我的机器人延迟以礼貌地处理负担过重的 Web 服务器。我的问题(诚然不可能完全准确地回答),是关于在遇到内置速率限制之前我可以多快发出 HTTP 请求?

我不想公布我们正在抓取的域的 URL,但如果它是相关的,我会问我的朋友是否可以分享。

注意:我意识到这不是解决我们的问题(重组/组织数据库)的最佳方法,但我们正在构建一个概念验证来说服上级相信我的朋友拥有数据库的副本,他将从那里浏览必要的官僚机构,让我可以直接处理数据。

他们还为我们提供了用于 ATOM 提要的 API,但它需要一个关键字来搜索,并且对于逐步浏览特定集合中的每张照片的任务似乎无用。

4

1 回答 1

4

HTTP 没有内置的速率限制。大多数常见的 Web 服务器都没有开箱即用地配置速率限制。如果设置了速率限制,则几乎可以肯定网站管理员已将其设置在那里,您必须询问他们配置了什么。

一些搜索引擎尊重 robots.txt 的非标准扩展,该扩展暗示了速率限制,因此请检查Crawl-delay.robots.txt

HTTP 确实有两个连接的并发连接限制,但浏览器已经开始忽略这一点,并且正在努力修改标准的这一部分,因为它已经过时了。

于 2011-10-14T21:18:48.300 回答