小帥b說過
在這幾篇中會着重說說将爬取下來的資料進行存儲
上次我們說了一種 csv 的存儲方式
這次主要來說說怎麼将爬取下來的資料儲存到 MySQL 資料庫
接下來就是
真香假設
本文假設你已經安裝好MySQL
并且懂了一些 MySQL 的使用
例如簡單“增删改查”的語句
如果你還沒安裝 MySQL
可以到以下連結去安裝一下
在你的 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 pd
from sqlalchemy import create_engine
df = pd.read_csv('xsb.csv')
# 當engine連接配接的時候我們就插入資料
engine = create_engine('mysql://[email protected]/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