关于scrapy 管道传数据库操作参照

    def process_item(self, item, spider):
        data = dict(item)
        content_url = data['sourceUrl']
        #特殊网站(post)
        md5 = hashlib.md5(content_url.encode()).hexdigest()
        ErrorCause = ''
        status = ''
        con = pymysql.connect(host="", port=3306, user="",
                              password="", db="")
        cursor = con.cursor()
        try:
            sql_search = f"SELECT 1 FROM integration_zb WHERE md5='{md5}';"
            cursor.execute(sql_search)
            res = cursor.fetchone()
            if not res:
                sql = '..............'
                cursor.execute(sql, (数据))
                con.commit()
                print('\033[7;41m完成完成完成完成完成完成\033[0m')
        except Exception as e:
            con.rollback()
            print('SQL执行异常', e)
            raise e
        finally:
            con.close()
            # print('关闭数据库')
Scrapy管道(Pipeline)是Scrapy爬虫框架中的一个组件,用于处理数据,对爬取到的数据进行后续处理,例如数据清洗、去重、存储等。 在Scrapy中,可以定义多个管道类,每个管道类都是一个Python类,实现了一系列的数据处理方法。Scrapy会按照管道类的优先级顺序依次调用每个管道类中的方法进行数据处理。 常用的管道方法包括: 1. process_item(item, spider):处理爬取到的数据,并返回处理后的数据。如果返回值是一个Item对象,则继续执行后续的管道类;如果返回值是一个DropItem异常对象,则停止执行后续的管道类;如果返回值是None,则继续执行后续的管道类。 2. open_spider(spider):在爬虫开始运行时调用,可以进行一些初始化操作。 3. close_spider(spider):在爬虫结束运行时调用,可以进行一些清理操作。 常用的管道类包括: 1. scrapy.pipelines.images.ImagesPipeline:用于下载图片并保存到本地。 2. scrapy.pipelines.files.FilesPipeline:用于下载文件并保存到本地。 3. scrapy.exporters.JsonItemExporter:将数据保存为JSON格式。 4. scrapy.exporters.CsvItemExporter:将数据保存为CSV格式。 5. scrapy_redis.pipelines.RedisPipeline:用于将数据保存到Redis数据库中。 可以通过在settings.py文件中配置ITEM_PIPELINES变量来启用管道类,并设置其优先级顺序。例如: ``` ITEM_PIPELINES = { 'myproject.pipelines.MyPipeline': 300, 'myproject.pipelines.MyOtherPipeline': 800, } ``` 以上配置将会依次调用MyPipeline和MyOtherPipeline两个管道类进行数据处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值