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

 

相關文章
相關標籤/搜索