之前我们已经学会了用Python爬取图片类网站和文字类网站。图片类网站还好说,爬取到的图片存放在我们的硬盘中就可以了。对于文字类网站,爬取到的文字信息怎么处理呢?一种方法是将其存储在txt文件中,还有一种方法就是直接将数据存入数据库中。本文我们将讲解怎么用Python操作MySQL数据库。

请确保你的系统安装了MySQL,Python环境安装了MySQldb模块。MySQldb模块的pip安装方式为 pip install MySQLdb,因为我的MySQL的用户为:root,密码为空,所以我直接用自己的用户密码登陆了。实际操作中请将user和password改为自己账号密码的就可以了。

要操作数据库,首先要导入MySQLdb模块,然后创建连接,语法如下:

#_*_ coding:utf-8 _*_
import MySQLdb
connect = MySQLdb.connect(host="localhost",user="root",passwd=",port=3306,db='douban',charset='utf8')
cursor=connect.cursor()

1、db为需要连接的数据库database,这个选项可以省略。

2、charset为字符串编码,如果有中文写入数据库,可避免乱码。

3、cursor为操作数据库的对象,通过cursor可以直接执行SQL语句。

4、user以及passwd请替换为自己的用户名以及密码。

下面的代码向大家展示了如何用Python建立数据库连接,创建数据库,创建新表,向新表插入内容,查询表中信息,删除数据库,删除数据表。

#_*_ coding:utf-8 _*_
import MySQLdb
conn =MySQLdb.connect(host="localhost",user="root",passwd='',port=3306,charset='utf8')
print u'打开数据库连接'
cur=conn.cursor()
print u'创建数据库cursor游标对象,用于操作数据库'
cur.execute('create database if not existsjiumei default charset=utf8')
print u'创建database(数据库)jiumei'
conn.select_db('jiumei')
print u'选定jiumei数据库'
cur.execute('''create table if not existsinfo
(id int not null,title varchar(100) notnull,url varchar(2000) not null) default charset=utf8''')
print u'创建table(表)info,info中包含id、title、url三列'
value=[6,'九妹图社','http://www.99mm.me/']
cur.execute('insert into info values(%s,%s,%s)',value)
print u'向info表中插入数据,数据内容为:value中的值'
conn.commit()
print u'这一句必须要,表示执行插入数据操作,否则数据不能插入数据库'
cur.execute('select * from info')
print u'查询info表中信息'
data=cur.fetchall()
print data
print u'fetchall()方法返回查询结果'
sql='drop database jiumei'
cur.execute(sql)
conn.commit()
print u'删除数据库jiumei'
##sql='drop table info'
##sql='truncate table info'
##sql='delete table info where id >8'
##cur.execute(sql)
##coon.commit()

####以上三条sql均可以删除数据,drop为删除表info;truncate为删除表info中的所有数据,但不包括索引;delete为逐条删除符合条件的表中数据。

程序运行结果如上图所示,程序中的print语句事实上就是注释,便于大家理解python操作MySQL的语法结构。程序执行结束以后,会发现我们数据库中并没有我们创建的jiumei数据库,这是因为我们程序最后执行drop database jiumei语句,导致我们创建的数据库又被删除了,想在数据库中看到我们创建的数据库,只需要将删除数据库的语句注释掉就可以了!