试着绕着整个扭曲的反应堆/ scrapy履带布线。
我需要的是这样的事情:
while True:
urls = get_latest_urls()
crawl(MySpider(urls))
## block until crawl is complete ##
mark_urls_as_crawled()
time.sleep(0.01)
让此脚本无限期运行。
我该怎么做呢?谢谢!
解决
通过摆脱while循环并使用回调来管理以获得我想要的功能。
process = CrawlerProcess(settings=get_project_settings())
crawl()
reactor.run()
def crawl():
d = process.crawl(MySpider(get_latest_urls()))
d.addBoth(crawl_done)
def crawl_done():
mark_urls_as_crawled()
crawl()