爬虫快速上手之数据持久化存储

本文介绍了Python爬虫中数据持久化的三种常见方式:CSV存储、MySQL数据库存储和MongoDB存储,包括每种方式的基本使用、操作流程和代码示例。此外,还涉及了多级页面数据抓取案例和增量爬虫的MySQL实现,帮助初学者掌握爬虫数据管理。
摘要由CSDN通过智能技术生成

学习视频推荐:【达内】2021年Python爬虫全套课程(爬虫快速上手)_哔哩哔哩_bilibili

目录

1.数据持久化存储-csv

2.数据持久化存储-MySQL

3.数据持久化存储-MongoDB

4.多级页面数据抓取案例

5.增量爬虫-MySQL实现


1.数据持久化存储-csv

        csv模块

  • 模块
    • csv Python标准库模块
  • 作用
    • 将爬取的数据存放到本地的csv文件中
  • 使用流程
    • 打开csv文件        f = open('test.csv', 'w', encoding = 'utf8')
    • 初始化写入对象        writer = csv.writer(f)
    • 写入数据(参数为列表)        writer.writerow(['', '']) 或者 writer.writerows([('', ''), (), ()...])
  • 代码示例
    • 1.writer.writerow(['', ''....])        参数为列表,列表中每个元素为csv文件中单元格的数据
      • import csv
        
        data_list = ['Jack', 18]
        # 打开csv文件
        file = open('writerow.csv', 'a', newline='')
        # 初始化写入对象
        writer = csv.writer(file)
        # 一行行写入数据
        writer.writerow(data_list)
        writer.writerow(data_list)
        writer.writerow(data_list)
        writer.writerow(data_list)
        
        # 关闭文件
        file.close()
    • 2.writer.writerows([('', '', ''....),(),...])        其中每个元组为一行数据,元组中的元素为一行中csv单元格中的数据第三方
      • import csv
        
        data = [('Jastin', 20), ('Bob', 11), ('Athena', 21), ('Backy', 35)]
        
        # 打开文件
        file = open('writerows.csv', 'a', newline='')
        # 初始化写入对象
        writer = csv.writer(file)
        # 一次写入多行数据
        writer.writerows(data)
        # 关闭文件
        file.close()

2.数据持久化存储-MySQL

        pymysql回顾

  • pymysql模块与MySQL数据库交互流程
    • 创建数据库连接对象        db = pymysql.connect(host='localhost', user = 'root', password  = '123456', database = 'xxx', charset = 'utf8')
    • 创建游标对象        cursor = db.cursor()
    • 执行SQL命令       
      • cursor.excute(sql语句, [xx, xx...]) 一次插入1条表记录
      • cursor.excutemany(sql语句, [(xx, xx...), (), ()...])一次插入多条表记录
      • 代码示例
      • import pymysql
        
        # 1. 创建数据库连接
        db = pymysql.connect(host='localhost', user='root', passwd='123456', database='maoyandb', charset='utf8')
        # 2. 创建游标对象
        cursor = db.cursor()
        # 3. 执行sql语句,将电影信息写入数据库表中
        # execute()一次写入一行数据
        cursor.execute('insert into maoyan VALUES (%s, %s, %s)', ['长安如故', '任嘉伦,白鹿', '2021.8.20'])
        # executemany()一次写入多行数据
        data_list = [('花千骨', '赵丽颖,霍建华', '2017.1.1'), ('机智的上半场', '章若楠,翟子路', '2021.9.1'), ('你是我的荣耀', '杨洋,迪丽热巴', '2021.7.1')]
        cursor.executemany('insert into maoyan VALUES (%s, %s, %s)', data_list)
        # 4. 提交到数据库执行
        db.commit()
        # 5. 关闭游标
        cursor.close()
        # 6. 关闭数据库连接
        db.close()
    • 提交到数据库执行        db.commit()
    • 关闭游标        cursor.close()
    • 断开数据库连接       db.close()

3.数据持久化存储-MongoDB

        MongoDB回顾

  •  进入MongoDB命令行:mongo
  • 常用命令
    • show dbs        查看所有库
    • use 库名       切换到指定库
    • show collections        查看当前库中的所有集合
    • db.集合名.find().pretty()        查看当前库中文档
    • db.集合名.count()        统计集合中文档的数量
    • db.集合名.drop()        删除集合</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值