繁体   English   中英

如何将每个Scrapy蜘蛛物品与另一个Scrapy蜘蛛物品进行比较?

[英]How to compare each Scrapy spider item with another Scrapy spider items?

我需要一个解决方案来将SecondSpider每个项目与SecondSpider的所有项目进行FirstSpider 签出此伪代码。

class FirstSpider(Spider):
    all_items = []

    def parse(self, response):
        trs = response.xpath("table tr")
        for tr in trs:
            item = SomeItem()
            item["one"] = "one"
            yield item

class SecondSpider(Spider):
    def parse(self, response):
        trs = response.xpath("table tr")
        for tr in trs:
            item = SomeItem()
            item["one"] = "one"
            if item in FirstSpider.all_items:
                yield item

谢谢!

我假设您的蜘蛛一个接一个地运行: FirstSpider收集所有数据,然后运行SecondSpider 在这种情况下,一种解决方案是将FirstSpider返回的所有项目保存到一个临时文件中,然后在初始化SecondSpider时将其SecondSpider 在这种情况下,您可以在本地访问所有数据并可以对其进行过滤。

或者,您可以创建一个物料管道,该管道从FirstSpider加载导出的物料,并过滤SecondSpider返回的SecondSpider

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM