python爬虫26 | 把数据爬取下来之后就存储到你的MySQL数据库。
小帅b说过
在这几篇中会着重说说将爬取下来的数据进行存储
上次我们说了一种 csv 的存储方式
这次主要来说说怎么将爬取下来的数据保存到 MySQL 数据库
接下来就是
学习python的正确姿势

真香假设
本文假设你已经安装好MySQL
并且懂了一些 MySQL 的使用
例如简单“增删改查”的语句
如果你还没安装 MySQL
可以到以下链接去安装一下
https://www.mysql.com/downloads/

在你的 MySQL 中创建一个数据库吧
就叫...
AV-Idol
用 root 的身份进入你的 MySQL
sudo mysql -u root -p
输入 MySQL 的用户名密码之后
就可以开始操作 MySQL 啦
我们来创建一个数据库
如果 avIdol 这个数据库不存在于我们的 MySQL 里面
那就创建一个出来
mysql> create database if not exists avIdol;Query OK, 1 row affected (0.01 sec)
这样
我们就创建出一个数据库了

接下来
我们就使用 python 来操作这个数据库吧
我们需要使用到 pymysql 这个库
专门用来操作 MySQL 的
可以用 pip 安装一下
pip install pymysql
接下来我们就连接到我们刚刚创建的数据库
然后在这个数据库里面创建一张 beautyGirls 表
专门用来存放漂亮美眉的信息
import pymysql# 使用 connect 方法,传入数据库地址,账号密码,数据库名就可以得到你的数据库对象db = pymysql.connect("你的数据库地址", "数据库账号","数据库密码", "avIdol")# 接着我们获取 cursor 来操作我们的 avIdol 这个数据库cursor = db.cursor()# 比如我们来创建一张数据表sql = """create table beautyGirls (name char(20) not null,age int)"""cursor.execute(sql)# 最后我们关闭这个数据库的连接db.close()
运行一下
没报什么错就说明我们成功创建数据表了
我们回到数据库看下是否创建成功

通过 show tables
可以看到我们数据库成功创建了 beautyGirls 这张婊,哦不,表
通过 show full columns from beautyGirls;
可以看到我们在这张表中创建了 name 和 age 这两个字段

有了数据库和数据表了
那么接下来我们就往数据库插入数据看看
import pymysql# 使用 connect 方法,传入数据库地址,账号密码,数据库名就可以得到你的数据库对象db = pymysql.connect("localhost", "root", "root", "avIdol")# 接着我们获取 cursor 来操作我们的 avIdol 这个数据库cursor = db.cursor()# 插入一条记录sql = "insert into beautyGirls(name, age) values ('Mrs.cang', 18)"try:cursor.execute(sql)db.commit()except:# 回滚db.rollback()# 最后我们关闭这个数据库的连接db.close()
再来数据库查询一下这张表

可以看到
苍老师的数据就被我们插进来了

当你使用 pymysql 对数据进行更新的时候
记得调用
db.commit()
这样才会执行到哦
知道如何创建数据表、插入数据
那么对于更新数据以及删除数据
也是同样的道理
只是 sql 语句不同而已
比如删除 18 岁的苍老师
sql = "delete from beautyGirls where age = '%d'" % (18)try:cursor.execute(sql)db.commit()except:db.rollback()
可能你在操作数据库的时候
做一些数据的更新或者添加
有些数据在添加过程可能出现异常
为了让我们的数据能够完全的添加
可以使用
db.rollback()
回滚操作
这样才能让我们的事务具有一致性

当然
我们也可以将 csv 中的内容插入到 MySQL 中
就拿上次我们生成的 xsb.csv 文件来说

我们把这里面的内容插到 xsb 数据库吧
还是一样,我们来创建一个叫做 xsb 的数据库
并且把字符集设置为 UFT-8 ,防止中文乱码
mysql> CREATE DATABASE xsb CHARACTER SET utf8 COLLATE utf8_general_ci;
接着创张帅b表
mysql> CREATE TABLE xsb (name char(20), age char(20), length char(20));Query OK, 0 rows affected (0.34 sec)
回到代码来
这次我们安装一下 mysql 的 python 客户端
pip install mysqlclient
使用 sqlalchemy 来连接我们的数据库
然后就可以使用代码将 csv 文件的内容插到 xsb 这张表了
import pandas as pdfrom sqlalchemy import create_enginedf = pd.read_csv('xsb.csv')# 当engine连接的时候我们就插入数据engine = create_engine('mysql://root@localhost/xsb?charset=utf8')with engine.connect() as conn, conn.begin():df.to_sql('xsb', conn, if_exists='replace')
运行一下
然后打开我们刚刚创建的 xsb 数据库查询一下

可以看到
我们就将 csv 中的内容插入到数据库啦

ok
以上就是使用 python 操作数据库的具体操作
以后小帅b在爬虫项目例子中还会提及 MySQL
那么
我们下回见
peace

python爬虫26 | 把数据爬取下来之后就存储到你的MySQL数据库。的更多相关文章
- Python爬虫:为什么你爬取不到网页数据
前言: 之前小编写了一篇关于爬虫为什么爬取不到数据文章(文章链接为:Python爬虫经常爬不到数据,或许你可以看一下小编的这篇文章), 但是当时小编也是胡乱编写的,其实里面有很多问题的,现在小编重新发 ...
- Python爬虫实战二之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...
- Python爬虫实战一之爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...
- 转 Python爬虫实战二之爬取百度贴吧帖子
静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...
- python爬虫学习01--电子书爬取
python爬虫学习01--电子书爬取 1.获取网页信息 import requests #导入requests库 ''' 获取网页信息 ''' if __name__ == '__main__': ...
- python爬虫:了解JS加密爬取网易云音乐
python爬虫:了解JS加密爬取网易云音乐 前言 大家好,我是"持之以恒_liu",之所以起这个名字,就是希望我自己无论做什么事,只要一开始选择了,那么就要坚持到底,不管结果如何 ...
- 转 Python爬虫实战一之爬取糗事百科段子
静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...
- Python爬虫入门教程 42-100 爬取儿歌多多APP数据-手机APP爬虫部分
1. 儿歌多多APP简单分析 今天是手机APP数据爬取的第一篇案例博客,我找到了一个儿歌多多APP,没有加固,没有加壳,没有加密参数,对新手来说,比较友好,咱就拿它练练手,熟悉一下Fiddler和夜神 ...
- python实现人人网用户数据爬取及简单分析
这是之前做的一个小项目.这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~ 简单来说这个项目实现了,登录人人网并爬取用户数据.并对用户数据进行分析挖掘,终于效果例如以下:1.存储人人网用户数据( ...
随机推荐
- luogu 4429 染色
bjoi 2018 染色 推了个错误结论得了60分? 题目大意: 一个无重边和自环的无向图,并且对每个点分别给了一个大小为2的颜色集合,只能从这个集合中选一种颜色给这个点染色 求一个染色方案使得没有两 ...
- 6 Workbook 对象
6.1 在奔跑之前先学会走路:打开和关闭工作薄 代码清单6.1:一个完整的工作薄批处理框架 '代码清单6.1:一个完整的工作薄批处理框架 Sub ProcessFileBatch() Dim nInd ...
- 【转】整套完整安全的API接口解决方案
原文地址:http://www.cnblogs.com/hubro/p/6248353.html 在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API ...
- Controller控制器的使用
如果不加@Controller注解,浏览器它是无法访问到的.@RequestMapping通过某个URL访问到我们写的方法
- bzoj1085骑士精神(搜索)
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1893 Solved: 1051 Description ...
- P4097 [HEOI2013]Segment
传送门 简单来说就是对于每条线段,先把它拆成\(O(logn)\)条,然后对于每一条再\(O(logn)\)判断在所有子区间的优劣程度 //minamoto #include<bits/stdc ...
- [Swift]通天遁地Swift
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Linux安装PHP环境
简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...
- 解决WebSocket后台报错:The WebSocket session [0] has been closed and no method (apart from close()) may be called on a closed session
场景1: 在后台数据对前台页面进行数据实时推送下,后台采取定时查询数据后,推送给前台页面.在这个过程中,前台页面不停的刷新页面,session在不停的关闭和开启,推送数据时,会出现session连接已 ...
- EditText(2)自定义回车键的行为
1,在android:imeOptions属性中指定要自定义的行为. 系统中有很多行为,如:搜索,完成,下一步等:actionSend,actionGo,actionNext等.下面EditText名 ...