补充:一开始自学JAVA的时候,就觉得,程序与数据库交互非常非常难,感觉应该是学不会了,但是python插入脚本自学,基本上从零基础到能够插入,用了不到一天的时间。所以,信心对于学习新事物是非常重要的。学之前,需要相信自己一定可以学会。这里也分线箱目前学习的方法论:
1. 明确学习的方向,需要非常具体,最好是疑问句,比如:使用python怎么向Mysql数据库插入一条数据?
2. 查找前辈记录: 百度查询问题的关键字,翻阅记录找靠谱的答案!
3. 实践、实践、实践。过程中肯定会遇到很多问题,遇到问题先截图,分析问题原因,提问 ==》try ==》验证 ==》提问 == 》 try ==》验证;几轮之后就好了。基础学习是没有难题的,因为基本上你遇到的问题,别人早就遇到了【这句话是我看很多解决问题的博客里写的】
4. 总结:代码归档、博客总结、分享交流;bug修复过程分析整理。
Hello,本小白自学爬虫的过程中,接到了一个任务,将爬取的数据插入到数据库中。以前抓取的数据直接写入excel,没什么难度,但是写数据库,还真的是零基础,仅以此文记录学习过程,希望对自己以及对同样有类似学习需求的童鞋们有些帮助。
第一步 安装本地数据库服务器
想要操作数据库的前提是,要有个自己的数据库让你随便霍霍,但是从来就没搭建过数据库怎么办?论坛大腿有的是,我参照的论坛大腿:qq_35164169
直接上链接,mysql-5.7.17-winx64压缩版的安装包下载和安装配置
我自己操作了一下,博文大多数地方都是没问题的,在第八步,设置的密码是:123456 ;非并不是空的,还请注意
第二步 安装数据库访问工具
本人正在使用的是Navicat,下载难度不大,应该难不了各位,就不放链接了
第三步 建库&表
进入Navicat,左上方链接点击后,录入本地数据库账号密码:(root,123456,如果步骤1按照博文执行,生成的就是这个账号密码),点击下方链接测试,弹出连接成功,即可进入数据库,如下图
进入数据库后,左侧列表中,右键链接名,如我这里起的名是:localhost,双击后,点击新建数据库,则可加入数据库,你可以为自己的数据库起名并配置字符集,如下图
建完数据库之后,双击你的建的库,则右侧能够显示数据库的表结构,可进行新建表操作了:
至于表单中的字段怎么设置,标间关系,不是本贴的重点,不进行说明,有需要的童鞋可能需要再查下论坛里大腿的帖子,会由答案的
第四步 Python操作Mysql数据库
针对增删改操作,介绍比较详细的链接:Python在mysql中进行操作是十分容易和简洁的
针对登录数据库,介绍比较详细的链接:Python学习笔记——Python中使用Mysql
有了登录以及操作,python针对Mysql的基础操作,也就基本掌握了呀。好了先说到这,我也实践下,遇到问题会再更新~
附录:执行bug1:
产生原因及解决方法:
Bug2:
这个bug好理解,是因为插入的字段,超过了数据库字段长度,导致数据无法插入
Bug3,执行完脚本发现信息没有插入,
这就尴尬了,少了一行:
# -* - coding: UTF-8 -* -
import pymysql
db = pymysql.connect('localhost','root','123456','test')
cursor = db.cursor()
ID1 = 'test_OF_ID'
C_platform1 = 'test_OF_platform'
C_Broand1 = 'test_OF_Broand'
C_Motol_Type1 = 'test_OF_Motol_Type'
C_Style1 = 'test_OF_Style'
C_Models1 = 'test_OF_Models'
DT_Car_Board1 = 'Board'
C_Price1 = 'test_OF_Price'
C_City1 = '大连'
query = 'insert into tb_car_info_from_crawl (ID, C_platform, C_Broand, C_Motol_Type, C_Style, C_Models, DT_Car_Board, C_Price, C_City) values(%s,%s,%s,%s,%s,%s,%s,%s,%s)'
cursor.execute(query, (ID1,C_platform1,C_Broand1,C_Motol_Type1,C_Style1,C_Models1,DT_Car_Board1,C_Price1,C_City1))
db.commit() #这一行没有加,导致insert数据没有插入,一定要加!
cursor.close()
db.close()
bug4: 插入mysql数据库后,中文存在乱码,
这个根本的原因还是因为数据库设置字符集不对,有多种不对的原因:1. 数据库服务的字符集不对,2. 数据库字符集不对 3. 表字符集不对
这个地方很纠结,找了很多资料,最给力的一个,