昨晚閑得蛋疼,看了看MySQL的文檔,人生第一次用mysql,看了一會兒發現,我操,這么簡單,然后就瞎瘠薄搞了搞,今天下午就想寫點東西,打開了鐵把就想到之前看別人視頻寫的爬貼吧email,個人覺得寫的不好,自己正好沒事干,就順手寫了個爬蟲,順帶保存到MySQL,開搞把。
國際慣例,先上圖 (:
還是看看數據把...輸入命令
結果:
一共761條,看起來還不錯,當然還是有些不正確的郵箱,代碼在這github.com/ZCKun/CCCoding
或者直接wget https://raw.githubusercontent.com/ZCKun/CCCoding/master/tieba_email.py下載到本地
說一下要用到的模塊
requests
re
pymysql
可能有些剛入這行伙計沒接觸過MySQL,我就在這簡單的說下如何安裝和配置,我只有一臺裝了debian的機器,linux下操作都一樣,mac應該也查不了多少,win的話可以百度
首先安裝MySQL到你的機器上
這是官網: www.mysql.com/
下載地址: www.mysql.com/downloads/
社區版本下載地址: dev.mysql.com/downloads/mysql/
考慮到有些人像我當年一樣沒電腦只有一部android手機也寫了幾個月的代碼的情況下,在這里我也說下如何用手機安裝MySQL(mariadb),請確認你的手機是android并且版本在5.x以上最好6.x
首先在你手機安裝一個軟件-termux,你可以百度或者去google play下載
安裝好了打開后看到熟悉的終端,輸入 apt update && apt upgrade
然后開始安裝mariadb(mysql的那啥。。。) apt-get install mariadb
安裝好了之后 輸入 mysqld 開啟服務
然后另開一個窗口輸入 mysql 出錯。。內心懵逼啊, 我這特么不是裝好了么
別慌,termux上安裝mariadb時不會要你設置密碼,但是我們有辦法
輸入 mysqladmin -u root password “你的密碼” 這樣就設置了你的root用戶的密碼了
然后輸入 mysql -u root -p 回車,要求輸入密碼,填寫你剛剛設置的密碼就ok了
然后開始配置用戶的host,以便于你在電腦/手機上可以方便的用python連接,我這里用電腦示范,確保你手機后臺在運行服務,在你的計算機上登錄你手機上的mariadb時可以用 mysql -h host -P port -u user -p 這里的host是指你手機的ip(局域網的),port端口mysql/mariadb默認是3306,user就是登錄的用戶
在你登錄成功后,出現如下界面:
手機上:
之后輸入的命令啥的都一樣,我就不再一一截圖了。。。
輸入 SHOW DATABASES; 或者 show databases; 查看有哪些數據庫
可能和我的不一樣,很正常,你只要確認有mysql這個數據庫就可以了
接著輸入 USE mysql 或 use mysql 相當于進入該數據庫
看到和我的提示差不多一樣就沒毛病
你可以用 SHOW TABLES; 查看有哪些數據表,但是我這里就不瞎弄了
在這里我們新建一個用戶,并讓其他機器可以連接到來方便我們開發
輸入 INSERT INTO user (Host, User, Password) VALUES ("%", "用戶名", "密碼");
解釋一下“%”這玩意兒,如果你想讓別處的機器也可以連接當前數據庫的話,就這樣寫,“%”是MySQL里的通配符
如過用上面的命令出錯了,那么你還是。。。。。。。別慌,我有辦法
輸入 CREATE USER "用戶名"@"%" IDENTIFIED BY "密碼";
但是這還不夠,接著先為剛剛創建的用戶新建一個數據庫,比如叫:testDB
輸入 CREATE DATABASE testDB;
然后給它這個數據庫的所有權限,接著輸入
GRANT ALL PRIVILEGES ON testDB.* TO "剛剛創建的用戶名"@"%" IDENTIFIED BY "密碼";
創建完了,然后檢查一下是否成功,輸入
SELECT Host, User, Password, Select_priv, Insert_priv, Update_priv, Create_priv FROM user WHERE User = "你剛剛創建的用戶名";?
出現如上圖顯示有東西就是創建成功,password是經過加密的,還有一點忘說了,這操作只能在root用戶下才可以
linux的直接 sudo apt-get install mysql-server 就搞定了,當然不閑麻煩的去官網下載
在安裝期間會要求你設置root密碼,這是mysql的root用戶密碼,最好別忘記
在Windows上,安裝時請選擇UTF-8編碼,以便正確地處理中文。
在Mac或Linux上,需要編輯MySQL的配置文件,把數據庫默認的編碼全部改為UTF-8。MySQL的配置文件默認存放在/etc/my.cnf或者/etc/mysql/my.cnf:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然后一切妥了,測試是否安裝成功,終端下輸入 mysql -u root -p 然后會車輸入你的root密碼,出現這樣的界面就是ok了
對了,忘了創建數據表了,,,
輸入 CREATE TABLE email (email VARCHAR(30));
這里第一個email是數據表的名稱,第二個email是列的名稱,30的意思就是限制大小30字符以內,不一定要用VARCHAR,你也可以用CHAR、DATA來表示,主要看你要存啥東西
終于開始講爬蟲了,我日,碼了一個多小時的字。。。
本次的目標網址http://tieba.baidu.com/p/5178628955?pid=108443531615&cid=0#108443531615,我們得到他"?"前面的那串數字就可以了
一共13頁,思路來了
1、獲取爬取的帖子的頁數,然后生成鏈接列表
2、迭代鏈接列表請求,之后解析
3、連接mysql數據庫,然后存儲
代碼我就不寫了,直接貼圖上來
詳細代碼可以在這里看到github.com/ZCKun/CCCoding
文章質量可能很爛,不過還是比較詳細( 個人感覺 (: )