小帥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 ,防止中文亂碼
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