问题描述
2010年,有人写道Scrapy计划采取某种方法,使您可以在Spider完成后运行新请求。
有这样的功能吗? https://groups.google.com/forum/#!topic/scrapy-users/_HBmn4W-9kU
如果没有,我需要在所有URL都已爬网之后运行新请求,但是spider_idle
对我不起作用。它甚至没有记录IDLE。
@classmethod
def from_crawler(cls,crawler,*args,**kwargs):
spider = super().from_crawler(crawler,**kwargs)
crawler.signals.connect(spider.spider_idle,signal=signals.spider_idle)
return spider
def spider_idle(self,spider):
spider.logger.info('IDLE')
for t in Tender.objects.filter(date_published__gte=now() - timedelta(days=self.DAYS_AGO)).exclude(
last_scanning=self.scanning):
self.logger.debug(f'IDLE scraping {t.aquisition_number}')
yield self.build_list_request('',date_min=None,date_max=None,description=t.aquisition_number)
你知道怎么做吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)