1、概念
- PyMySQL是Python连接MySQL,并进行一系列数据库、表、字段操作的一个库,不仅可用于爬虫数据保存,也可用于删除、修改、查询等操作。
2、安装
pip install pymysql
3、代码
- 本文不再使用爬虫数据进行演示,而采用自定义数据进行增删改查的演示方法,即假定已运行爬虫并获取到数据。
- 本文使用了“Navicat Premium 15”数据库管理软件进行同步演示,将通过软件直观地展示代码执行后的结果,当然也可使用PyCharm自带数据库管理模块进行相关操作,读者可自行查阅使用方法。
- 本文使用的代码中包括一定的MySQL语句,具体含义请读者自行查阅。
- 导包:
import pymysql
- 使用connect()方法创建连接,并保存到connection变量,同时创建游标Cursor,用于执行数据库操作。注意在创建连接前,应确保读者电脑上已经安装好MySQL软件并配置完毕。
connection = pymysql.connect(
host='localhost', # 连接计算机主机,取localhost即可
user='root', # 用户名,默认root
password='********', # 使用自己的密码
charset='utf8mb4' # 设定编码
)
Cursor = connection.cursor()
- 创建数据库,名为csdn_test,使用execute()执行MySQL语句。执行并打开Navicat查看建库结果。
sql_1 = "CREATE DATABASE IF NOT EXISTS csdn_test"
Cursor.execute(sql_1)
- 使用创建的数据库,创建一个新的数据表,名为table_1,其中包含两个字段t1(字符型,长度255)与t2(整数型)。执行并打开Navicat查看建表结果。
sql_2 = "USE csdn_test"
Cursor.execute(sql_2)
sql_3 = "CREATE TABLE IF NOT EXISTS table_1 (t1 CHAR(255), t2 INT)"
Cursor.execute(sql_3)
- 自定义一条字符串,模拟保存到table_1中的t1字段。由于插入操作对数据库进行了修改,需要使用commit()方法提交保存修改,最后勿忘关闭连接。执行并打开Navicat查看建表结果。
test_data = '这是一条爬虫数据,类型为字符串'
sql_3 = "INSERT INTO table_1(t1) VALUES ('{}')".format(test_data)
Cursor.execute(sql_3)
connection.commit()
connection.close()
- 完整代码如下:
import pymysql
connection = pymysql.connect(
host='localhost', # 连接计算机主机,取localhost即可
user='root', # 用户名,默认root
password='1234qwer', # 使用自己的密码
charset='utf8mb4' # 设定编码
)
Cursor = connection.cursor() # 创建操作游标
sql_1 = "CREATE DATABASE IF NOT EXISTS csdn_test" # 创建数据库
Cursor.execute(sql_1)
sql_2 = "USE csdn_test" # 使用(指定)数据库
Cursor.execute(sql_2)
sql_3 = "CREATE TABLE IF NOT EXISTS table_1 (t1 CHAR(255), t2 INT)" # 创建数据表
Cursor.execute(sql_3)
test_data = '这是一条爬虫数据,类型为字符串'
sql_3 = "INSERT INTO table_1(t1) VALUES ('{}')".format(test_data) # 插入数据
Cursor.execute(sql_3)
connection.commit() # 提交修改
connection.close() # 关闭连接
4、总结
- 本文只是简单地展示数据保存流程,在具体爬虫中,读者可先将爬取到的数据(字符串、数字等)保存到列表或字典中,在使用for循环依次取出数据并存入,也可采取爬取一条数据就保存一条数据等多种方法。
- 本文提到的MySQL安装、MySQL语法、Navicat使用、Python自带数据库管理模块使用等部分,请读者自行查阅。若本文阅读较多,或有读者留言希望解释,请关注我的后续文章。
- 学如逆水行舟,不进则退!
- (ง •̀-•́)ง