用python scrapy 写东西用的小思路  Item Pipeline

本文介绍了一种在Scrapy爬虫项目中处理重复数据的方法,通过实现一个自定义的pipeline组件,可以有效地过滤掉重复抓取的信息。这种方法利用了item中的唯一标识符,并在入库前进行检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.---------------------------

最近在采百度贴吧,

思考的过重问题 与 采集原信息入库问题

至于重复问题本想 可以建一个url 放在数据库里.这样在pipelines 里入库前对比一下

现在想来可以直接用/p/ 后面的数据来对比了.因为后面的数据现也是唯一的.似乎好像是按时间上升的.这样数据的重复性唯与入库时间问题好像都可以解决了.

思路:

重复过滤器

假设我们的item里面的id字典是唯一的,但是我们的蜘蛛返回了多个相同id的item

from scrapy.exceptions import DropItem

class DuplicatesPipeline(object):

    def __init__(self):
        self.ids_seen = set()

    def process_item(self, item, spider):
        if item['id'] in self.ids_seen:
            raise DropItem("Duplicate item found: %s" % item)
        else:
            self.ids_seen.add(item['id'])
            return item


信息来源地址:Scrapy笔记(6)- Item Pipeline  http://www.tuicool.com/articles/rmi222Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值