从 0 到 1 掌握 PyMySQL:爬虫数据存储实战指南

在爬虫开发中,爬取到的数据如何高效、安全地存储是一个关键问题。关系型数据库凭借其结构化存储、事务支持等特性,成为很多场景下的首选。本文将带你全面掌握 Python 操作 MySQL 的利器 ——PyMySQL,从安装配置到实战案例,让你轻松实现爬虫数据的 MySQL 存储。

一、认识 PyMySQL:为什么选择它?

关系型数据库通过二维表存储数据,每一列是字段,每一行是记录,多个表组成数据库。常见的关系型数据库有 SQLite、MySQL、Oracle 等,而在 Python 中操作 MySQL,PyMySQL 是最佳选择之一。

PyMySQL 是 Python 连接 MySQL 数据库的接口,实现了 Python 数据库 API v2.0,且是纯 Python 的 MySQL 客户端库。它主要用于替代 Python2 中的 MySQLDB 库,完美支持 Python3,这也是我们选择它的核心原因。

二、PyMySQL 核心操作四步法

使用 PyMySQL 操作 MySQL 数据库,只需牢记四个核心步骤,无论增删改查都离不开这个流程:

  1. 创建数据库连接对象:建立 Python 与 MySQL 的桥梁
  2. 获取游标对象:执行 SQL 语句的工具
  3. 执行 SQL 语句:实现具体的数据操作
  4. 提交事务并关闭连接:确保数据安全并释放资源

2.1 连接对象(connect)的核心方法

连接对象是 Python 与 MySQL 沟通的桥梁,其常用方法如下:

  1. cursor()
    cursor () 方法的作用是创建并返回一个游标对象。借助这个游标对象,能够执行 SQL 语句,还可以获取查询结果。其语法格式为:cursor = connection.cursor()

  2. commit()
    commit () 方法用于提交当前事务。在对数据库进行插入、更新、删除等操作之后,需要调用该方法来确认更改。语法是:connection.commit()

  3. rollback()
    rollback () 方法的功能是回滚当前事务。当执行过程中出现错误时,可以使用此方法撤销之前的操作。语法为:connection.rollback()

  4. close()
    close () 方法的用途是关闭数据库连接。在完成数据库操作后,应当调用该方法释放资源。语法是:connection.close()

三、手把手教你创建数据库连接

创建数据库连接需要使用pymysql.connect()函数,通过参数指定数据库信息。常用参数如下:

  1. Host(主机)

    • 类型为字符串,用于指定 MySQL 服务器的主机名或 IP 地址。
    • 若 MySQL 服务器安装在本地,可填写 127.0.0.1 或者 localhost
  2. Port(端口)

    • 类型是数字,用于指定连接 MySQL 服务器的端口号。
    • MySQL 服务器的默认端口是 3306,不过具体端口可能会因服务器配置而有所不同。
  3. User(用户名)

    • 类型为字符串,是用于登录 MySQL 服务器的用户名。
    • 这个用户名需要在 MySQL 服务器中已经存在,并且拥有访问指定数据库的权限。
  4. Password(密码)

    • 类型是字符串,是对应用户名的登录密码。
    • 要确保密码的准确性,否则将无法成功连接到数据库。
  5. Db(数据库名)

    • 类型为字符串,指定要连接的具体数据库名称。
    • 该数据库必须在 MySQL 服务器中已经创建。
  6. Charset(字符集)

    • 类型是字符串,用于设置数据库连接的字符集。
    • 推荐使用 "utf8" 或者 "utf8mb4",这样可以避免中文等非 ASCII 字符出现乱码问题。

四、数据库表操作全攻略
掌握了基本连接方法后,我们来学习如何对数据库表进行增删改查操作。
4.1 创建表

4.2 插入数据

插入数据需要注意事务处理,确保数据一致性。推荐使用占位符%s传递参数,避免 SQL 注入风险。

4.3动态字典插入法(灵活应对字段变化):

4.4 更新数据

4.5 删除数据

4.6 查询数据

五、总结与技巧

  1. 事务处理:PyMySQL 默认开启事务,增删改操作必须通过commit()提交,失败时用rollback()回滚
  2. 参数化查询:始终使用%s占位符传递参数,避免 SQL 注入
  3. 资源释放:操作完成后务必关闭游标和连接,释放资源
  4. 批量操作:使用executemany()进行批量插入 / 更新,效率更高
  5. 字符集设置:连接时指定charset="utf8",避免中文乱码

掌握 PyMySQL 后,你可以轻松将爬虫数据存储到 MySQL 中,为后续的数据分析和应用开发打下基础。快去试试爬取自己感兴趣的网站,用 PyMySQL 存储数据吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值