用python爬取qq好友十萬條說說並簡單進行數據分析

編程語言 JSON QQ空間 網絡爬蟲 Java世界 2017-08-02

用python爬取qq好友十萬條說說並簡單進行數據分析

對編程沒有興趣的朋友可以直接看後面的數據分析結果,

開發環境:win7下的

python3.5、MySQL5.7

編輯器:

pycharm2017.1、ipython,Navicat for mysql

需要的python第三方庫:

selenium、PIL、Requests、MySQLdb、csv、pandas、numpy、matplotlib、jieba、wordcloud

另外還用到了無頭瀏覽器PhantomJS。有興趣的加群(621710153)

主要思路:

一、通過selenium+phantomjs模擬登錄qq空間取到cookies和g_qzonetoken,並算出gtk

二、通過Requests庫利用前面得到的url參數,構造http請求

三、分析請求得到的響應,是一個json,利用正則表達式提取字段

四、設計數據表,並將提取到的字段插入到數據庫中

五、通過qq郵箱中的導出聯繫人功能,把好友的qq號導出到一個csv文件,遍歷所有的qq號爬取所有的說說

六、通過sql查詢和ipython分析數據,並將數據可視化

七、通過python的第三方庫jieba、wordcloud基於說說的內容做一個詞雲

閒話不多說,直接上代碼

通過selenium+phantomjs模擬登錄qq空間取到cookies和g_qzonetoken,並算出gtk

import refrom selenium import webdriverfrom time import sleepfrom PIL import Image#定義登錄函數def QR_login():

通過Requests庫利用前面得到的url參數,構造http請求

用python爬取qq好友十萬條說說並簡單進行數據分析

通過抓包分析可以找到上圖這個請求,這個請求響應的是說說信息

用python爬取qq好友十萬條說說並簡單進行數據分析

通過火狐瀏覽器的一個叫json-dataview的插件可以看到這個響應是一個json格式的,開心!

然後就是用正則表達式提取字段了,這個沒什麼意思,直接看我的代碼

def parse_mood(i):

其實到這裡爬蟲的主要的代碼就算完了,之後主要是通過QQ郵箱的聯繫人導出功能,構建url列表,最後等著它運行完成就可以了。這裡我單線程爬200多個好友用了大約三個小時,拿到了十萬條說說。下面是爬蟲的主體代碼。

#從csv文件中取qq號,並保存在一個列表中csv_reader = csv.reader(open('qq.csv'))friend=[]for row in csv_reader:

下面是爬取的數據,有100878條!(沒想到居然有這麼多)

用python爬取qq好友十萬條說說並簡單進行數據分析

有興趣的加群(621710153)

相關推薦

推薦中...