首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将每个Scrapy爬虫物品与另一个Scrapy爬虫物品进行比较?

如何将每个Scrapy爬虫物品与另一个Scrapy爬虫物品进行比较?
EN

Stack Overflow用户
提问于 2015-07-11 21:32:52
回答 1查看 381关注 0票数 1

我需要一个解决方案来比较每个项目的SecondSpiderFirstSpider的所有项目。看看这段虚拟代码。

代码语言:javascript
复制
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

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-07-13 14:13:12

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

或者,您可以创建一个项目管道,该管道从FirstSpider加载导出的项目,并对SecondSpider返回的项目进行过滤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31357693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档