Python3爬虫中使用PyMySQL操作MySQL数据库的方法

  介绍

这篇文章给大家分享的是有关Python3爬虫中使用PyMySQL操作MySQL数据库的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

在Python 2中,连接MySQL的库大多是使用MySQLdb,但是此库的官方并不支持Python 3,所以这里推荐使用的库是PyMySQL。

使用PyMySQL操作MySQL数据库的方法。

<强> 1。准备工作

在开始之前,请确保已经安装好了MySQL数据库并保证它能正常运行,而且需要安装好PyMySQL库。如果没有安装,可以参考第1章。

<强> 2。连接数据库

这里,首先尝试连接一下数据库。假设当前的MySQL运行在本地,用户名为根,密码为123456,运行端口为3306。这里利用PyMySQL先连接MySQL,然后创建一个新的数据库,名字叫作蜘蛛,代码如下:

import  PyMySQL   时间=db  pymysql.connect(主机=& # 39;localhost # 39;,用户=& # 39;根# 39;,,密码=& # 39;123456 & # 39;,,端口=3306)   时间=cursor  db.cursor ()   cursor.execute (& # 39; SELECT () & # 39;版本)   时间=data  cursor.fetchone ()   打印(& # 39;Database 版本:& # 39;,,数据)   cursor.execute (“CREATE  DATABASE  spiders  DEFAULT  CHARACTER  SET  utf8")   db.close ()

运行结果如下:

Database 版本:,(& # 39;5.6.22& # 39;)

这里通过PyMySQL的connect()方法声明一个MySQL连接对象db,此时需要传入MySQL运行的主机(即IP)。由于MySQL在本地运行,所以传入的是localhost。如果MySQL在远程运行,则传入其公网IP地址。后续的参数用户即用户名,密码即密码,港口即端口(默认为3306年)。

连接成功后,需要再调用光标()方法获得MySQL的操作游标,利用游标来执行SQL语句。这里我们执行了两句SQL,直接用execute()方法执行即可。第一句SQL用于获得MySQL的当前版本,然后调用fetchone()方法获得第一条数据,也就得到了版本号。第二句SQL执行创建数据库的操作,数据库名叫作蜘蛛,默认编码为utf - 8。由于该语句不是查询语句,所以直接执行后就成功创建了数据库蜘蛛。接着,再利用这个数据库进行后续的操作。

<强> 3。创建表

一般来说,创建数据库的操作只需要执行一次就好了。当然,我们也可以手动创建数据库。以后,我们的操作都在蜘蛛数据库上执行。

创建数据库后,在连接时需要额外指定一个参数db。

接下来,新创建一个数据表学生,此时执行创建表的SQL语句即可。这里指定3个字段,结构如表5 - 1所示。

 Python3爬虫中使用PyMySQL操作MySQL数据库的方法

创建该表的示例代码如下:

import  PyMySQL   时间=db  pymysql.connect(主机=& # 39;localhost # 39;,,用户=& # 39;根# 39;,,密码=& # 39;123456 & # 39;,,=3306港,db=& # 39;蜘蛛# 39;)   时间=cursor  db.cursor ()   时间=sql  & # 39; CREATE  TABLE  IF  NOT  EXISTS  students  (id  VARCHAR (255), NOT 空,,name  VARCHAR (255), NOT 空,,age  INT  NOT 空,,   PRIMARY  KEY  (id) & # 39;   cursor.execute (sql)   db.close ()

运行之后,我们便创建了一个名为学生的数据表。

当然,为了演示,这里只指定了最简单的几个字段。实际上,在爬虫过程中,我们会根据爬取结果设计特定的字段。

<强> 4。插入数据

下一步就是向数据库中插入数据了。例如,这里爬取了一个学生信息,学号为20120001,名字为鲍勃,年龄为20,那么如何将该条数据插入数据库呢?示例代码如下:

import  pymysql   时间=id  & # 39; 20120001 & # 39;   时间=user  & # 39;鲍勃# 39;   age =20   时间=db  pymysql.connect(主机=& # 39;localhost # 39;,,用户=& # 39;根# 39;,,密码=& # 39;123456 & # 39;,,=3306港,db=& # 39;蜘蛛# 39;)   时间=cursor  db.cursor ()   时间=sql  & # 39; INSERT  INTO 学生(id,名称,,年龄),值(% s,, % s,, % s) & # 39;   试一试:   ,,,cursor.execute (sql,,(用户id,,,,年龄))   ,,,db.commit ()   除了:   ,,,db.rollback ()   db.close ()

这里首先构造了一个SQL语句,其价值值没有用字符串拼接的方式来构造,如:

sql =, & # 39; INSERT  INTO 学生(id,名称,,年龄),值(& # 39;,+,id  +, & # 39;,, & # 39;, +, name  +, & # 39;,, & # 39;, +, age  +, & # 39;) & # 39;

Python3爬虫中使用PyMySQL操作MySQL数据库的方法