Scrapy -下载延迟更改在去

  • 本文关键字:延迟 下载 Scrapy scrapy
  • 更新时间 :
  • 英文 :


我需要在scrapy延迟请求。我正在抓取的网页为我提供了"你的数据将在50秒内准备好",时间可以从2秒到60秒,然后我想废弃很多页面(我从请求秒请求中得到一个列表),所以将全局download_delay设置为60秒不是最好的主意。

你可以试试这个

from scrapy.spider import BaseSpider
from twisted.internet import reactor, defer
from scrapy.http import Request
DELAY = 5 # seconds

class MySpider(BaseSpider):
    name = 'wikipedia'
    max_concurrent_requests = 1
    start_urls = ['http://www.wikipedia.org']
    def parse(self, response):
       nextreq = Request('http://en.wikipedia.org')
       dfd = defer.Deferred()
       reactor.callLater(DELAY, dfd.callback, nextreq)
       return dfd

在您的示例中,DELAY将是您从响应中获得的时间。

最新更新