Scrapy爬虫框架实现数据的备份 数据存储到文件、MySQL、MongoDB、Redis中

如何实现数据的备份?

  • 一、数据的备份指的是将爬取到的一组数据存储到多个不同的载体(文件、MySQL、MongoDB、Redis)中
  • 二、持久化存储的操作必须要写在管道文件中(pipelines.py)

一个管道类对应一种形式的持久化存储
如果将数据存储到多个载体中则必须要有多个管道类

我们前面讲过,要使用管道必须要在settings.py文件中开启管道,这里存在一个优先级,数值越小优先级越高。那么现在有一个问题,让两个管道类都接收到item且对其进行持久化存储,爬虫文件提交的item可以同时提交给多个管道类吗?我们知道爬虫文件提交的item只可以交给优先级最高的一个管道类。
如何可以让优先级低的管道类也可以接收item呢?
可以让优先级高的管道类在process_item方法中通过return item的形式将item传递给下一个即将被执行的管道类。记住这一点,我们再来往下进行!
如果想使用多个管道需要在每个管道的process_item方法中return item并且对管道进行注册,优先级不可相同!

数据存储到MySQL

前提是你的电脑中有mysql数据库,这里需要现在数据库中创建一张表:

show databases;  #查看一下所有的数据库

create database spider charset=utf8; #创建数据库spider

use spider #切换到spider数据库中

create table meizi (href varchar(100),title varchar(1000)); #创建数据库表
desc meizi

然后在Python需要安装PyMysql模块,代码参考:

import pymysql
#将数据存储到MySQL中一份
class MysqlPipeline(object):
    conn=None
    def open_spider(self,spider):
        #连接mysql数据
        self.conn = pymysql.Connect(host='127.0.0.1', port=3306,db='test',
                                    charset='utf8')
        #print(self.conn)
    def 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值