我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?
環境、架構:
開發語言:Python2.7 Python3.6
開發環境:64位Windows8系統,4G記憶體,i7-3612QM處理器。
資料庫:MongoDB 3.2.0
(Python編輯器:Pycharm 5.0.4;MongoDB管理工具:MongoBooster 1.1.1)
主要使用 requests 模組抓取,部分使用 BeautifulSoup 解析。
多執行緒使用 multiprocessing.dummy 。
抓取 Cookie 使用 selenium 和 PhantomJS 。
判重使用 BitVector 。
進群:548377875 即可獲取數十套PDF從零基礎到專案實戰的還有大量的學習教程!如果需要原始碼請單獨私信,不全部給哦!
啟動程式:
進入 myQQ.txt 寫入QQ賬號和密碼(用一個空格隔開,不同QQ換行輸入),一般你開啟幾個QQ爬蟲執行緒,就至少需要兩倍數量的QQ用來登入,至少要輪著登入嘛。
進入 init_messages.py 進行爬蟲引數的配置,例如執行緒數量的多少、設定爬哪個時間段的日誌,哪個時間段的說說,爬多少個說說備份一次等等。
執行 init.py 檔案開啟爬蟲專案。
爬蟲開始之後首先根據 myQQ.txt 裡面的QQ去獲取 Cookie(以後登入的時候直接用已有的Cookie,就不需要每次都去拿Cookie了,遇到Cookie失效也會自動作相應的處理)。獲取完Cookie後爬蟲程式會去申請四百多兆的記憶體,申請的時候會佔用兩G左右的記憶體,大約五秒能完成申請,之後會掉回四百多M。
爬蟲程式可以中途停止,下次可開啟繼續抓取。
執行截圖:
說說資料:
日誌資料:
好友關係資料:
個人資訊資料:
資料庫說明:
QQSpider主要爬取QQ使用者的說說、日誌、朋友關係、個人資訊。
資料庫分別設定 Mood、Blog、Friend、Information 四張表。
Mood 表:
_id:採用 “QQ_說說id” 的形式作為說說的唯一標識。
Co-oridinates:發說說時的定位座標,呼叫地圖API可直接檢視具體方位,可識別到在哪一棟樓。
Comment:說說的評論數。
Like:說說的點贊數。
Mood_cont:說說內容。
PubTime:說說發表時間。
QQ:發此說說的QQ號。
Source:說說的根源(對於轉發的說說),採用 “QQ_說說id” 的形式標識。
Tools:發說說的工具(手機型別或者平臺)。
Transfer:說說的轉發數。
URL:說說的連結地址。
isTransfered:此說說是否屬於轉發來的。
Blog 表:
_id:採用 “QQ_日誌id” 的形式作為日誌的唯一標識。
Blog_cont:日誌內容。
Comment:日誌的評論數。
Like:日誌的點贊數。
PubTime:日誌的發表時間。
QQ:發此日誌的QQ號。
Share:日誌的分享數。
Source:日誌的根源(對於轉發的日誌),採用 “QQ_日誌id” 的形式標識。
Title:日誌的標題。
Transfer:日誌的轉發數。
URL:日誌的連結地址。
isTransfered:此日誌是否屬於轉發來的。
Friend 表:
_id:採用 QQ 作為唯一標識。
Num:此QQ的好友數(僅統計已抓取到的)。
Fx:朋友的QQ號,x代表第幾位好友,x從1開始逐漸迭加。
Information 表:
_id:採用 QQ 作為唯一標識。
Age:年齡。
Birthday:出生日期。
Blog:已發表的日誌數。
Blogs_WeGet:我們已抓取的日誌數。
Blood_type:血型。
Career:職業。
Company:公司。
Company_address:公司詳細地址。
Company_city:公司所在城市。
Company_country:公司所在國家。
Company_province:公司所在省份。
Constellation:星座。
CurrentTime:抓取當前資訊的時間(不同時間資訊會不同)。
FriendsNum:好友數(僅統計已抓取的)。
Gender:性別。
Hometown_city:故鄉所在城市。
Hometown_country:故鄉所在國家。
Hometown_province:故鄉所在省份。
Living_city:居住的城市。
Living_country:居住的國家。
Living_province:居住的省份。
Marriage:婚姻狀況。
Message:空間留言數。
Mood:已發表的說說數。
Mood_WeGet:我們已抓取的說說數。
PageView:空間總訪問量。
Picture:已發表的照片數(包括相簿裡的照片和說說裡的照片)。
結語:
自己一個人瞎搞了一個多星期,肯定還有很多地方不規範,不夠優化。不足之處請多指出
此專案可還行?合你的胃口嗎?