【python】微信朋友圈數據分析及可視化(爬蟲+數據挖掘)



1. 成果展示

在這里插入圖片描述
在這里插入圖片描述

2. 環境配置

環境配置教程請參考我的這篇文章:【python】自動化連接和操作手機微信

3. 爬朋友圈

爬所有用戶前100天(最多只能爬到173天前)發的朋友圈數據,包括:用戶昵稱文本內容發布時間

from appium import webdriver
import time

# 連接手機微信
caps = {
    "platformName": "Android",
    "deviceName": "emulator-5554",
    "platformVersion": "6.0.1",
    "appPackage": "com.tencent.mm",
    "appActivity": ".ui.LauncherUI",
    "noReset": "True",
    "unicodeKeyboard": "True",
    "resetKeyboard": "True"
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)

# 爬朋友圈數據
time.sleep(10)
print('點擊發現')
driver.find_elements_by_id('com.tencent.mm:id/cnh')[2].click()
time.sleep(5)
print('點擊朋友圈')
driver.find_element_by_id('com.tencent.mm:id/b3b').click()
time.sleep(5)
print('開始爬蟲')
with open('pyqs.csv', 'a', encoding='utf_8_sig') as f:
    f.write('昵稱,文本,時間'+'\n')
while True:
    for item in driver.find_elements_by_id('com.tencent.mm:id/fn9'):
        try:
            name = item.find_element_by_id('com.tencent.mm:id/e3x').text
        except:
            name = ''
        try:
            text = item.find_element_by_id('com.tencent.mm:id/b_e').text
        except:
            try:
                text = item.find_element_by_id('com.tencent.mm:id/gbx').text
            except:
                text = ''
        try:
            time = item.find_element_by_id('com.tencent.mm:id/ij').text
        except:
            time = ''
        if name != '' and text != '' and time != '':
            name = name.replace(',', ' ')
            text = text.replace(',', ' ').replace('\n', ' ')
            each = ','.join([name, text, time])
            with open('pyqs.csv', 'a', encoding='utf_8_sig') as f:
                f.write(each+'\n')
            print(each)
        else:
            pass
    # 下滑
    driver.swipe(0, 1400, 0, 700)
    if '101天前' in time:
        print('爬取結束')
        break
    else:
        pass

4. 數據處理

爬下來的數據存到pyqs.csv文件中,我們發現有很多重復數據,做一下去重:

'''依賴模塊 pip install pandas '''
import pandas as pd
df = pd.read_csv('pyqs.csv')
df = df.drop_duplicates()
df.to_csv('pyqs2.csv', encoding='utf_8_sig')

5. 數據分析

數據分析代碼請參考我的這篇文章:【python】B站彈幕數據分析及可視化(爬蟲+數據挖掘)

5.1. 詞頻分析

利用jieba庫做詞頻分析,並用pyecharts庫繪制詞雲圖。

5.1.1. 昵稱詞頻分析

可以看出你的微信好友中誰發朋友圈最勤。(出於對隱私的保護,請允許我打一下碼)
在這里插入圖片描述

5.1.2. 內容詞頻分析

可以看出你的好友經常關注或談論哪些內容。
在這里插入圖片描述

5.2. 情感分析

利用snownlp庫做情感分析,並用pyecharts庫繪制餅狀圖。由餅狀圖可知:微信好友中大多人發的內容都是比較積極的。
在這里插入圖片描述

6. 引用參考

https://blog.csdn.net/qq_42951560/article/details/110558662


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM