大家好,我是辰哥。
主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站开发、程序开发、微网站、小程序制作等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站建设、网站制作、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。
爬虫采集下来的数据除了存储在文本文件、excel之外,还可以存储在数据集,如:Mysql,redis,mongodb等,今天辰哥就来教大家如何使用Python连接Mysql,并结合爬虫为大家讲解。
前提:这里默认大家已经安装好mysql。
mysql是关系型数据库,支持大型的数据库,可以处理拥有上千万条记录的大型数据库。通过爬虫采集的数据集存储到mysql后,可以借助mysql的关联查询将相关的数据一步取出。具体的作用这里就不赘述了,下面开始进入实际操作。
1.安装pymysql
通过下面这个命令进行安装
- pip install pymysql
pymysql库:Python3链接mysql
备注:
ps:MYSQLdb只适用于python2.x
python3不支持MYSQLdb,取而代之的是pymysql
运行会报:ImportError:No module named 'MYSQLdb'
2.python连接mysql
- import pymysql as pmq
- #connect(ip.user,password,dbname)
- con = pmq.connect('localhost','root','123456','python_chenge')
- #操作游标
- cur = con.cursor()
localhost是本机ip,这里用localhost表示是当前本机,否则将localhost改为对应的数据库ip。
root是数据库用户名,123456是数据库密码,python_chenge是数据库名。
图上的数据库python_chenge已经建立好(建好之后,才能用上面代码去连接),建好之后,当前是没有表的,现在开始用Python进行建表,插入、查询,修改,删除等操作(结合爬虫去讲解)
在存储之前,先通过python创建表,字段有四个(一个主键+电影名称,链接,评分)
- # 创建 movie 表
- movie_sql= '''
- create table movie(
- id int AUTO_INCREMENT primary key not null,
- title varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci not null,
- url varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci not null,
- rate float not null
- )
- '''
- # 执行sql语句
- cur.execute(movie_sql)
- # 提交到数据库执行
- con.commit()
创建表movie,字段分别为(id ,title ,url ,rate ),CHARACTER SET utf8 COLLATE utf8_general_ci是字符串编码设置为utf8格式
id是主键primary key,int类型,AUTO_INCREMENT自增,非空not null
title,url 是字符串类型varchar(100),同样非空
评分rate 是带小数的数字,所以是float,同样非空
爬虫已经采集到数据,python已经建好表,接着可以将采集的数据插入到数据库,这里介绍两种方式
- ### 插入数据
- def insert(title,url,rate):
- # 插入数据一
- #cur.execute("INSERT INTO movie(title,url,rate) VALUES('"+str(title)+"','"+str(url)+"',"+str(rate)+")")
- # 插入数据二
- sql = "INSERT INTO movie(title,url,rate) VALUES('"+str(title)+"','"+str(url)+"',"+str(rate)+")"
- cur.execute(sql)
- # 提交到数据库执行
- con.commit()
id是自增的,所以不需要在传值进去。
定义好插入数据库方法后,开始往数据库进行存储
- for i in json_data['subjects']:
- insert(i['title'],i['url'],i['rate'])
1.查询所有
查询表中所有数据
- # 查询
- cur.execute('select * from movie')
- results = cur.fetchall()
- for row in results:
- Id = row[0]
- title = row[1]
- print("id=%s,title=%s" % (Id, title))
2.查询指定的数据
比如查询标题为:唐人街3这一条数据的所有字段
- #查询单条
- cur.execute('select * from movie where title="唐人街探案3"')
- results = cur.fetchall()
- for row in results:
- Id = row[0]
- title = row[1]
- url = row[2]
- rate = row[3]
- print("id=%s,title=%s,url=%s,rate=%s" % (Id, title,url,rate))
更新数据,还是以上面:唐人街3为例,id为7,将唐人街3评分从5.5改为6
- ### 更新
- def update():
- sql = "update movie set rate='6' where Id = {0}".format(7)
- cur.execute(sql)
- con.commit()
同时看一下数据库
同样还是以唐人街为例,其id为7,删除的话咱们可以更新id去删除
- def delete(Id):
- sql = "delete from movie where Id = {0}".format(Id)
- cur.execute(sql)
- con.commit()
删除之后,就没有第7条数据了,说明删除成功
今天的技术讲解文章就到此结束,主要是将了如何通过python去连接mysql,并进行建表,插入数据,查询,更新修改和删除。
本文转载自微信公众号「Python研究者」,可以通过以下二维码关注。转载本文请联系Python研究者公众号。
网页标题:教你用Python玩转MySQL
网站路径:http://www.shufengxianlan.com/qtweb/news5/204155.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联