我想在Scrapy中连接多个蜘蛛,以便一个的输出反馈另一个。我知道Scrapy用于连接解析函数的方式,并使用请求的Meta参数来通信项目。
class MySpider(scrapy.Spider):
start_urls = [url1]
def parse(self, response):
# parse code and item generated
yield scrapy.Request(url2, call_back=self.parse2, meta={'item': item})
def parse2(self, response):
item = response.meta['item']
# parse2 code
但是我有很长的连接解析函数列表,这种日益增加的复杂性将更加模块化,并且更容易使用多个蜘蛛进行调试。
谢谢!
答案 0 :(得分:0)
除了cronjob schedulibg之外的方法将覆盖close_spider
信号
因为您为每个用例编写了多个蜘蛛
接下来你应该覆盖close_spider信号并使用脚本从那里调用下一个蜘蛛。
你需要为所有蜘蛛做这个信号覆盖,并在当前蜘蛛完成它的操作后立即调用下一个依赖蜘蛛