使用爬虫爬数据,总要涉及到数据持久化,也就是数据存储的问题。
我们可以根据具体情况把数据保存在本地txt
文件里,excel
里,csv
里等等,当然也可以存储在数据库里。
本篇博客主要记录如何通过Python
连接MySQL
数据库,并实现增删改查
操作的。
1. 配置环境
首先需要安装MySQL
数据库和pymysql
库。
MyQL
数据库的安装和配置过程略去不讲,自行查阅资料。
pymysql
库是python
用来操作MySQL
数据库的一个第三方库,安装命令如下:
pip install pymysql
2. 创建数据库和数据表
在MySQL
数据库中设置好用户名,密码,端口等,创建好数据库和数据表。
如上示例,是我创建的数据库TopicDB
和数据表QuestionsTable
。
3. 连接数据库
将自己的数据库的IP
、端口
,用户名
、密码
等参数填进去,运行即可完成数据库的连接。
import pymysqldb = pymysql.connect(host='xxx.xxx.xxx.xxx', port=3306, user='smartcrane', passwd='xxxxxx', db='TopicDB', charset='utf8')cursor = db.cursor()
如果数据库是本地的话,host
可以填127.0.0.1
或localhost
。
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)mit()except Exception as e:db.rollback()print(e)
更新数据,删除数据等操作的写法跟插入数据的写法一样,只要修改对应sql
语句即可。
如果数据库操作报错了。调试的话,首先把
sql
字符串打印出来,复制到MySQL
数据库中执行看是否有误。大部分的情况下,都是
SQL
语句有误引起的。
5. 关闭数据库连接
程序运行结束后,需要断开数据库连接。
示例代码如下:
# 关闭光标对象cursor.close()# 关闭数据库连接db.close()
如果觉得《Python 爬虫基础: 如何将数据存入Mysql数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!