欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)

程序员文章站 2022-03-08 08:01:19
环境配置环境配置教程请参考我的这篇文章:【python】自动化连接和操作手机微信爬朋友圈爬朋友圈前100天(最多只能爬到173天前)的所有用户数据,包括:用户昵称,文本内容和发布时间。from appium import webdriverimport time# 连接手机微信caps = { "platformName": "Android", "deviceName": "emulator-5554", "platformVersion": "6.0.1",...


1. 成果展示

【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)
【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)

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. 昵称词频分析

可以看出你的微信好友中谁发朋友圈最勤。(出于对隐私的保护,请允许我打一下码)
【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)

5.1.2. 内容词频分析

可以看出你的好友经常关注或谈论哪些内容。
【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)

5.2. 情感分析

利用snownlp库做情感分析,并用pyecharts库绘制饼状图。由饼状图可知:微信好友中大多人发的内容都是比较积极的。
【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)

6. 引用参考

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

本文地址:https://blog.csdn.net/qq_42951560/article/details/110880429