scrapy的数据保存到数据库

将数据保存到数据库

mysql数据库

下载链接数据库的依赖

 Conda/pip install pymysql

在piplines.py 文件中

重写open_spider方法

​ 连接到mysql数据库

    def open_spider(self, spider):
        self.conn = pymysql.Connect(
            host='localhost',
            port=3306,
            user='root',
            password='20020115',
            db='scrapy',
        )
        self.cursor = self.conn.cursor()

重写process_item方法

​ 将数据保存到数据库中

    def process_item(self, item, spider):
        sql = "INSERT INTO  scrapy.srr1(movie_name,movie_dates,movie_times,movie_scores,movie_adds,movie_pq) values ('%s','%s','%s','%s','%s','%s')"
        self.cursor.execute(
            sql % (
                item['movie_name'],
                item['movie_dates'],
                item['movie_times'],
                item['movie_scores'],
                item['movie_adds'],
                item['movie_pd'],
            )
        )
        self.conn.commit()
        return item

重写close_spider()

​ 关闭爬虫时关闭数据库连接

    def close_spider(self, spider):
        self.conn.close()
        self.cursor.close()

代码解析

请添加图片描述

最后找到setting.py文件中的以下内容并且取消注释并且将指定优先级(优先级是一个 )

ITEM_PIPELINES = {
   "ss1_miove.pipelines.Ss1MiovePipeline": 300,
}

请添加图片描述

在native中查看数据验证程序是否成功运行

请添加图片描述

mongoDB数据库

数据库的安装参考:MongoDB数据库安装_阿龙的代码在报错的博客-CSDN博客

在Python环境中下载pymongo的库用来连接数据库并且写入数据

pip install pymongo

在其他内容不变的前提下载piplines.py文件中创建一个新的类并且重写open_spider、process_item、close_spider这三个方法

# 将数据写入MongoDB数据库
class Scrapyssr1Miovemongopipline(object):

    def open_spider(self, spider):
        self.conn = pymongo.MongoClient('localhost', 27017)
        self.db = self.conn.ssr1_movie
        self.mioves = self.db.mioves

    def process_item(self, item, spider):
        self.mioves.insert_one(
            {
                "name": item['movie_name'],
                "date": item['movie_dates'],
                "time": item['movie_times'],
                "score": item['movie_scores'],
                "location": item['movie_adds'],
                "pq": item['movie_pd'],
            }
        )

    def close_spider(self, spider):
        self.conn.close()

代码解析
请添加图片描述

需要注意的是:pymongo 4.0.2 不再使用 insert () 而使用 insert_one () 或 insert_many ()

最后一步就是去setting.py文件中注册并且设置优先级

这里需要将其他的持久化存储方式注释掉

ITEM_PIPELINES = {
    # "ss1_miove.pipelines.Ss1MiovePipeline": 300,
    'ss1_miove.pipelines.Scrapyssr1Miovemongopipline': 300,
}

在MongoDB图形化程序中查看数据验证程序是否成功运行

请添加图片描述

数据库中有数据并且数据正确,证明数据采集成功,并且完成数据的持久化存储

上一篇文章:创建完整的scrapy

个人笔记仅供参考,部分电脑可能因为环境不用代码无法运行,见谅。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿龙的代码在报错

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值