天天看點

python爬蟲資料庫_python爬蟲26 | 把資料爬取下來之後就存儲到你的MySQL資料庫

小帥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