调度Scrapy蜘蛛以脚本的间隔运行

时间:2018-06-16 02:42:56

标签: python scrapy

我们假设我有一只需要多次运行的蜘蛛

class My_spider(Scrapy.spider):
    #spider def

我想做那样的事情

while True:
    runner = CrawlerRunner()
    deferred = runner.crawl(My_spider)
    deferred.addBoth(lambda _: reactor.stop())
    reactor.run()
    time.sleep(180)

有没有办法做到这一点?我用谷歌搜索过去12个小时,我认为我尝试的一切都不起作用,我要么遇到ReactorNotRestartable还是别的什么。在这一点上,我正在考虑编写一个单独的模块,它只能安排控制台命令。

1 个答案:

答案 0 :(得分:0)

使用计划模块而不是时间。这是你如何做到的

import schedule

schedule.every(1).minute.do(runner.crawl(My_spider))
while True:
    schedule.run_pending()

这将每1分钟运行一次抓取功能。详细了解此库here