python爬虫26 | 把数据爬取下来以后就存储到你的MySQL数据库。

 

小帅b说过php

 

在这几篇中会着重说说将爬取下来的数据进行存储html

 

上次咱们说了一种 csv 的存储方式python

 

此次主要来讲说怎么将爬取下来的数据保存到 MySQL 数据库mysql

 

接下来就是ios

 

学习python的正确姿式nginx

 

 

真香假设web

 

本文假设你已经安装好MySQLsql

 

而且懂了一些 MySQL 的使用shell

 

例如简单“增删改查”的语句数据库

 

若是你还没安装 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_engine
df = 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

 

相关文章
相关标签/搜索