python-Web Scraper:限制单个域中每分钟/小时的请求?
作者:互联网
我正在与图书馆员一起重新组织其组织的数字摄影档案.
我用Mechanize和BeautifulSoup构建了一个Python机器人,可以从集合中提取大约7000个结构不良和轻微错误/不完整的文档.数据将格式化为电子表格,供他用来更正.现在,我估计总共有7500个HTTP请求来构建搜索字典,然后收集数据,不计算代码中的错误和重复次数,随着项目的进行,还会增加更多的请求.
我认为对发出这些请求的速度有某种内在的限制,即使没有,我也会给我的机器人延迟时间,以使其在繁重的Web服务器上保持礼貌.我的问题(绝对不可能完全准确地回答)是关于我在遇到内置速率限制之前可以多快发出HTTP请求?
我宁愿不发布我们要抓取的域的URL,但是如果相关,我会问我的朋友是否可以共享.
注意:我意识到这不是解决我们的问题(重组/组织数据库)的最佳方法,但是我们正在建立概念证明以说服高层人士信任我的朋友提供数据库副本,他将从中浏览必要的官僚机构,让我直接处理数据.
他们还为我们提供了ATOM提要的API,但是它需要一个关键字来搜索,对于单步浏览特定集合中的每张照片似乎毫无用处.
解决方法:
HTTP没有内置的速率限制.大多数常见的Web服务器都没有开箱即用地配置以进行速率限制.如果设置了速率限制,则几乎可以肯定它是由网站管理员放置的,您必须询问他们所配置的内容.
一些搜索引擎尊重robots.txt的非标准扩展名,该扩展名提出了速率限制,因此请检查robots.txt中的抓取延迟.
HTTP确实有两个连接的并发连接限制,但是浏览器已经开始忽略它,并且由于标准已经过时,因此正在努力修订该标准的该部分.
标签:http,mechanize-python,mechanize,python 来源: https://codeday.me/bug/20191102/1988878.html