对于爬虫程序来说,一个关键步骤就是将爬到的数据储存起来,下面讲解一下MySQL数据库的使用方法,MySQL是一种关系型数据库,它是一款开源的软件,适合于个人使用。下载并安装后,打开workbench页面,即可开始使用数据库。
1. 需要先创建一个数据库(下面我通过创建一个叫conferenceData的数据库为例子)
create database conferenceData;
2. 创建好数据库后,需要用 use conferenceData来表明,我们将使用这个数据库,注意每当我们使用时,这句话必须出现。
3. 前面我们只创建好了数据库,就好比一本书,拥有了封面,但是具体的文字,还是要写在新的页面里,所以我们还需要页面,而这个页面就是我们常说的table,table里面有很多列,每一列有一个名称,那么对应的数据就放在这里,这就是关系型数据库的显著特征。
create table pages(id bigint(7) NOT NULL auto_increment,//not null 表示不能为空
title varchar(200),
content varchar(10000),
created_time timestamp default current_timestamp,
primary key(id)
);//给每列定义一个类型,并且指明大小,如bigint(7)表示最大可以放7位数字,varchar(200)表示可以放200个汉字或字符,最后必须指明主键,便于使用。
4. 使用describe pages语句,即可查看表格的结构,如下图:
5. 通过上面的步骤,你已经成功的创建了一个数据库,下面来讲解,如何使用它:
(1):插入数据,
insert into pages(title,content) values("Test page title","This is some test page content,it can be up to 10000
characters long");//因为id 和create_time 有默认值,所以我们不需要去输入他们的值,系统会自动生成,当然你也可以override(覆盖)他们,当然最好还是不要去覆盖,让系统自己生成
(2):select 语句的使用:
select * from pages where title like "%t%";// * 号在这里表示所有的意思,也就是所有pages里的列元素,因为title是字符串类型,所以使用like 来进行比较
select * from pages where id=1;
select id title from pages where content like "%test%" //%%好里面放入字符串
(3)删除语句:
delete from pages where id=1; 这里最好不要用*号,因为这可能会导致你将一些不想删除的数据删除掉。
(4)update
update pages set title="a new title",content="new" where id=1;
这里主要运用了set ,只需将新的内容写在你想改的地方就行。
6. 用python连接mysql数据库
(1)先用命令pip install pymysql,下载包。下载结束后,用import pymysql导入即可使用
(2)在python中,主要运用到两个游标,conn,cur.conn是用来连接数据库的游标,cur是用来使用数据库中的一些函数
对应于sql里的代码,在Python里,只需要把对应的代码放在execute()函数里,即可执行。下面看实例代码:
import pymysql
conn = pymysql.connect(host="localhost", user="root", passwd="你是数据库密码", db="你所使用的数据库名称", charset="utf8")
cur = conn.cursor()
cur.execute("USE conferenceData")
cur.execute("SELECT * FROM pages WHERE id=1")
print(cur.fetchone()) # fetchone()函数返回一个或多个符合条件的元组
cur.close()
conn.close() #最后一定要记得关闭连接哦
7. 更改数据库编码类型
有时候,我们爬的数据包括中文和英文,并且数据非常大,我们用一般的varchar,编码为默认的gbk时,Python运行会报错,
error:1366, “Incorrect string value: ‘\xF0\x9F\x98\x81’
这时我们就需要去重新更改编码类型,下面给出更改表单(table),和表单里的某一项的编码格式的模板:
alter table 'test' default charset utf8mb4;//test为表单名称,utf8mb4为设置的编码格式
alter table 'test' change 'content' 'content' longtext charset utf8mb4;//content 为test里面的一项,longtext数据类型(可以用来存放大量文本)
因为后面修改字符类型太麻烦,所以最好在创建数据库和数据表的时候就指定编码类型,这样就不会出问题了。
创建数据库并指定编码和校验集
create database test character set utf8 collate utf8_general_ci;
创建表并指定编码和校验集
create table test character set utf8 collate utf8_general_ci
该博客为原创博客,可以转载但需要注明出处,谢谢合作!