如何在scrapy中为每个请求设置延迟?
我不想同时发送很多请求被封锁。我想每秒只发送一个请求。
6 个回答
11
class S(Spider):
rate = 1
def __init__(self):
self.download_delay = 1/float(self.rate)
rate 用来设置每秒钟最多可以下载多少个页面。
20
如果你不想设置全局的下载延迟,可以在爬虫上设置'download_delay'这个属性。具体可以参考这个链接:http://doc.scrapy.org/en/latest/faq.html#what-does-the-response-status-code-999-means
82
这里有一个设置可以用来控制这个:
DOWNLOAD_DELAY
默认值:
0
这个设置是指下载器在从同一个网站下载连续页面之前需要等待的时间(单位是秒)。这个功能可以用来限制爬虫的速度,以免对服务器造成过大的压力。
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
可以查看文档了解更多信息:https://doc.scrapy.org/en/latest/index.html