Python 爬虫基础: 如何将数据存入Mysql数据库

本文介绍了如何使用Python的pymysql库连接并操作MySQL数据库,包括创建数据库、数据表,执行增删改查操作。示例代码详细展示了查询、插入、更新和删除数据的方法,并强调了在遇到错误时如何调试SQL语句。
摘要由CSDN通过智能技术生成

使用爬虫爬数据,总要涉及到数据持久化,也就是数据存储的问题。

我们可以根据具体情况把数据保存在本地 txt 文件里,excel 里,csv 里等等,当然也可以存储在数据库里。

本篇博客主要记录如何通过 Python 连接 MySQL 数据库,并实现 增删改查 操作的。

1. 配置环境

首先需要安装 MySQL 数据库和 pymysql 库。

MyQL 数据库的安装和配置过程略去不讲,自行查阅资料。

pymysql 库是 python 用来操作 MySQL 数据库的一个第三方库,安装命令如下:

pip install pymysql

2. 创建数据库和数据表

MySQL 数据库中设置好用户名,密码,端口等,创建好数据库和数据表。

如上示例,是我创建的数据库 TopicDB 和数据表 QuestionsTable

3. 连接数据库

将自己的数据库的 IP端口用户名密码 等参数填进去,运行即可完成数据库的连接。

import pymysql

db = pymysql.connect(host='xxx.xxx.xxx.xxx', port=3306, user='smartcrane', passwd='xxxxxx', db='TopicDB', charset='utf8')
cursor = db.cursor()

如果数据库是本地的话,host 可以填 127.0.0.1localhost

4. 增删改查

通过 pymysql 库操作数据库,实际上也是通过执行 SQL 语句。也就是说,自行构造 SQL 语句的字符串 sql ,然后通过 cursor.excute(sql) 执行。

具体的 SQL 语法这里略去不讲,请自行搜索学习,此处仅讲解如何通过 Python 操作数据库。

4.1 查询数据

示例代码如下:

def queryDB():
    # 查询数据库
    try:
        sql = "select * from QuestionsTable"
        cursor.execute(sql)
        data = cursor.fetchone()
        print(data)
    except Exception as e:
        print(e)

查询数据时,在执行完 cursor.execute(sql) 操作之后,可以通过 fetchone()fetchall()fetchmany(n) 函数来获取查询结果,三个函数的区别如下。

  • 执行 cursor.fetchone() 每次取一条数据。

  • 执行 cursor.fetchall() 一次性取全部数据

  • 执行 cursor.fetchmany(n) 每次取 n 条数据。

4.2 增删改操作

示例代码如下:

def insertDB(id, title, url):
    #插入数据
    try:
        sql = "insert into QuestionsTable values (%s,'%s','%s')"%(id, title, url)
        cursor.execute(sql)
        db.commit()
    except Exception as e:
        db.rollback()
        print(e)

更新数据,删除数据等操作的写法跟插入数据的写法一样,只要修改对应 sql 语句即可。

如果数据库操作报错了。调试的话,首先把sql 字符串打印出来,复制到 MySQL 数据库中执行看是否有误。

大部分的情况下,都是 SQL 语句有误引起的。

5. 关闭数据库连接

程序运行结束后,需要断开数据库连接。

示例代码如下:

# 关闭光标对象
cursor.close()
# 关闭数据库连接
db.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

机灵鹤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值