1. 程式人生 > >我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

我一天累死累活爬四百萬資料!老闆一個月才給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 。

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

進群:548377875   即可獲取數十套PDF從零基礎到專案實戰的還有大量的學習教程!如果需要原始碼請單獨私信,不全部給哦!

啟動程式:

進入 myQQ.txt 寫入QQ賬號和密碼(用一個空格隔開,不同QQ換行輸入),一般你開啟幾個QQ爬蟲執行緒,就至少需要兩倍數量的QQ用來登入,至少要輪著登入嘛。

進入 init_messages.py 進行爬蟲引數的配置,例如執行緒數量的多少、設定爬哪個時間段的日誌,哪個時間段的說說,爬多少個說說備份一次等等。

執行 init.py 檔案開啟爬蟲專案。

爬蟲開始之後首先根據 myQQ.txt 裡面的QQ去獲取 Cookie(以後登入的時候直接用已有的Cookie,就不需要每次都去拿Cookie了,遇到Cookie失效也會自動作相應的處理)。獲取完Cookie後爬蟲程式會去申請四百多兆的記憶體,申請的時候會佔用兩G左右的記憶體,大約五秒能完成申請,之後會掉回四百多M。

爬蟲程式可以中途停止,下次可開啟繼續抓取。

執行截圖:

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

說說資料:

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

日誌資料:

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

好友關係資料:

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

個人資訊資料:

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

我一天累死累活爬四百萬資料!老闆一個月才給10K!我該離職嗎?

 

資料庫說明:

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:已發表的照片數(包括相簿裡的照片和說說裡的照片)。

結語:

自己一個人瞎搞了一個多星期,肯定還有很多地方不規範,不夠優化。不足之處請多指出

此專案可還行?合你的胃口嗎?