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_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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM