Web crawler 我应该多久查询一篇文章,这样我的爬虫就不会';你不会被禁止吗?

Web crawler 我应该多久查询一篇文章,这样我的爬虫就不会';你不会被禁止吗?,web-crawler,wikipedia,wikipedia-api,Web Crawler,Wikipedia,Wikipedia Api,我需要下载维基百科提供的每种主要语言的每篇文章的第一段。最好是无格式的纯文本 我找到了这个网址: 不幸的是,我必须知道每篇文章的标题。因此,我想我可以使用页面ID: 从pageids=0开始,递增到pageids=INT\u MAX 对于不同的通用语言(如德语),我可以简单地将域更改为de: 最后的URL是: https://%LLD%.wikipedia.org/w/api.php?action=query&format=json&pageid=%PAGE\u ID%&prop=extr

我需要下载维基百科提供的每种主要语言的每篇文章的第一段。最好是无格式的纯文本

我找到了这个网址:

不幸的是,我必须知道每篇文章的标题。因此,我想我可以使用页面ID

从pageids=0开始,递增到pageids=INT\u MAX

对于不同的通用语言(如德语),我可以简单地将域更改为de

最后的URL是:

https://%LLD%.wikipedia.org/w/api.php?action=query&format=json&pageid=%PAGE\u ID%&prop=extracts&exintro&explaintext

在哪里

LLD=国家的低级别域

PAGE_ID=整数

我无法理解数据转储,这是我找到的最简单的方法。既然,我真的不想在10000篇文章之后被禁止使用我的IP,我应该多久爬一次不同的页面ID

我需要一个指标,这样它可以尽可能的性能

主要编辑

对读取请求没有严格的限制,但我们要求您 为他人着想,尽量不要破坏网站。大多数系统管理员保留 如果你确实危及安全,有权不客气地阻止你 他们场地的稳定性

如果您以串联方式而不是并行方式提出请求(即等待 在发送新请求之前完成一个请求,这样 您从未在同一时间提出多个请求),那么您 当然可以。还可以尝试将内容合并到一个请求中 您可以(例如,在标题参数中使用多个标题 对每个标题提出新的请求

API FAQ声明每个API请求可以检索50页

对于以50个PageID为一系列,每X时间量爬行一次总计7000000个PageID,需要:

(70000,00/50)*200ms=3天

(70000,00/50)*500ms=8天

(70000,00/50)*1秒=16天


即使每200ms选择一次,我也会很好吗?

我不会使用URL本身,而是使用每个页面标题中的开放图形标记。Wikipedia有用于
og:title
og:image
og:type
的标记。如果您需要开放图形协议的帮助,请参阅。至于您的IP禁令I不必太担心。维基百科被数百万人使用,除非你使用机器人进行恶意活动,否则被禁止的可能性很小。

看起来在处理文章(解析json并将其存储在某个地方,甚至只是将其存储在某个地方)方面实际上有足够的延迟因此,一个接一个的呼叫永远不会给服务器带来足够的压力


一篇有效文章(全文)大约需要250毫秒才能完成,exchars=1200(每篇文章的最大字符数).

好吧,我已经有了我所需要的一切。重点是要让它有足够的性能,这样就不会花整个夏天的时间。你能详细说明一下吗?开放图形标记目前不包括文本摘录。可能会有帮助