2020在Spider完成抓取后抓取新的URL

问题描述

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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...