欢迎光临散文网 会员登陆 & 注册

Python爬取豆瓣Top250并可视化(四) —— 保存数据到数据库 —— Mysql

2022-11-03 12:08 作者:码夫破石  | 我要投稿

保存爬虫数据到数据库,某常用的是mysql,而不是sqlite,所以追加一篇保存到mysql数据库的笔记。

mysql数据库对于个人网站来说,还是比较友好的,这里搭建在本地,用到的是集成环境WAMP,思路的话查看关于Python与mysql的基本用法。直接上代码:

脚本运行完后保存到数据库的截图:

几点注意:

1,数据库服务器搭建好后,创建数据库的时候,可以用LAMP环境下的phpmyadmin可视化管理数据库,也可以用navicat,但是两种可视化创建数据库的途径,一定要注意编码,用phpmyadmin的编码最好选utf8_general_ci, 而navicat的编码为utf8 -- UTF-8 Unicode

2,提取网页爬取数据的时候,这里数据量比较小,所以用一个datalists就包含了,如果比较多的话,可以边爬边保存,直接在get_data()函数里进行保存;

3,构造sql语句的时候,插入语句的值是根据设定的数据类型而有所不同的,比如是数值型的,在构造sql的时候,就不要双引号;

4,与sqlite相同的是,创建表的时候,如果设定了自增主键(一般为id),那么插入数据的时候,是可以忽略自增主键的;

5,注意pymysql和sqlite在语法上的不同,创建表时,如主键id需要自增长,sqlite的写法是autoincrenment,而mysql的写法是auto_increment;

6,函数save_to_mysql_database()有两个需要注意,一个是用构造sqls时候,要提取data里的每项值data[index]然后再加双引号赋值给原来的data[index],for循环和sqls的位置;第二个是外层for循环,提交数据库更改的时候,conn.commit(),一定是要与外层for循环的for对齐。

打完收工。处理数据库,需要很多耐心,很多调试,特别是与爬虫结合的时候,要爬的服务器可能随时拒绝服务,所以倡议做爬虫的时候,尽量用最少的请求做完,给原服务器减压。

申明:本文仅供学习交流使用。如有侵权,请联系我删除。感谢。

Python爬取豆瓣Top250并可视化(四) —— 保存数据到数据库 —— Mysql的评论 (共 条)

分享到微博请遵守国家法律