QQ空間爬蟲(一天可抓取 400 萬條數據)
記得關注+轉發喲
1
環境、架構
開發語言:Python2.7
開發環境: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 。
2
使用說明:
啟動前配置:
MongoDB安裝好 能啟動即可,不需要配置。
Python需要安裝以下模塊(注意官方提供的模塊是針對win32系統的,64位系統用戶在使用某些模塊的時候可能會出現問題,所以盡量先找64位模塊,如果沒有64的話再去安裝32的資源):
requests、BeautifulSoup、multiprocessing、selenium、itertools、BitVector、pymongo
另外我們需要使用到 PhantomJS,這並不是 Python 的模塊,而是一個exe可執行文件,我們可以利用它模擬瀏覽器去獲取 Cookie 。使用方法:將 phantomjs-2.0.0-windows.zip 壓縮包裡面的 phantomjs.exe 放到你的 Python 目錄下就行了。
啟動程序:
進入 myQQ.txt 寫入QQ賬號和密碼(用一個空格隔開,不同QQ換行輸入),一般你開啟幾個QQ爬蟲線程,就至少需要兩倍數量的QQ用來登錄,至少要輪著登錄嘛。
進入 init_messages.py 進行爬蟲參數的配置,例如線程數量的多少、設置爬哪個時間段的日誌,哪個時間段的說說,爬多少個說說備份一次等等。
運行 init.py 文件開啟爬蟲項目。
爬蟲開始之後首先根據 myQQ.txt 裡面的QQ去獲取 Cookie(以後登錄的時候直接用已有的Cookie,就不需要每次都去拿Cookie了,遇到Cookie失效也會自動作相應的處理)。獲取完Cookie後爬蟲程序會去申請四百多兆的內存,申請的時候會佔用兩G左右的內存,大約五秒能完成申請,之後會掉回四百多M。
爬蟲程序可以中途停止,下次可打開繼續抓取。
運
行
截
圖
?按住圖片左右滑動
資料庫說明
※Python入門篇-python安裝教程
※Python安裝篇
TAG:python |