前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在爬完一周的朋友圈后,我发现了.......惊人秘密

在爬完一周的朋友圈后,我发现了.......惊人秘密

作者头像
用户8949263
发布2022-04-08 13:14:43
3930
发布2022-04-08 13:14:43
举报
文章被收录于专栏:Python数据分析实例

作者:小小明 原文链接:https://blog.csdn.net/as604049322/article/details/119988788

各位童鞋,大家好,我是CSDN小小明代码实体😎

在《⭐UI自动化工具轻松实现微信消息收发⚡朋友圈爬取⁉️》文末给童鞋们布置了一个作业,批量朋友圈爬取,不知道大伙们是否还有映像。

看到很多小伙伴们踊跃报名参与,不禁要给你们点个赞。考虑到很多小伙伴想做却做出来,这…贴心的我这不就来给你们公布参考答案啦?

对相关基础还不了解的童鞋请参考前文:

  • 《⭐UI自动化工具轻松实现微信消息收发⚡朋友圈爬取⁉️》
  • 《️❤️对比PyWinAuto和uiautomation实现微信联系人自动采集❤️》
  • 《❤️UI自动化轻松解决微信手工群发消息的烦恼❤️》
  • 《⭐Python轻松下载整理或删除微信收藏⚡》

首先我们开始爬取朋友圈:

🌀朋友圈数据爬取⚡

202108290919

去外面转了一圈,再回来发现10分钟之内就爬完了一周的朋友圈:

image-20210829093115282

当然这是因为我的微信好友太少,一周总共也只发了不到1000条消息。

晚上重新爬了一下,爬到8月21号直到朋友圈的数据无法继续拉取,始终都是这个状态说明已经无法拉取再早的朋友圈数据:

image-20210829225207123

共爬到1186条朋友圈动态数据,耗时12分钟:

image-20210829225545717

打开Excel简单的美化一下格式就得到如下结果:

image-20210829220033486

筛选了有点赞和评论的数据。

同时对于每一条存在图片或视频的朋友圈,都会在本地存储一张截图:

image-20210829220836616

可以看到在这近1200条朋友圈中有725条数据触发的图片或视频关键字产生截图:

image-20210829220944000

🧚好友朋友圈数据分析🎉

读取数据:

代码语言:javascript
复制
import pandas as pd
df = pd.read_excel("朋友圈.xlsx")
df = df.convert_dtypes()

我的好友给谁的点赞最多呢?

代码语言:javascript
复制
t = df.groupby("昵称").agg(
    点赞总人数=("点赞人数", "sum"),
    评论总条数=("评论条数", "sum"),
    发朋友圈条数=("序号", "count")
)

display(t.sort_values("点赞总人数", ascending=False).head(10))

原来我的好友中,大家最喜欢给这些数据分析相关的好友点赞:

image-20210829232142932

排除点只发一条朋友圈的平均点赞比例最高的依然是数据分析相关的:

image-20210829235327975

秘密1:我的朋友圈中,数据分析相关的好友的朋友最容易被点赞。

代码语言:javascript
复制
t[t.发朋友圈条数 > 10].shape[0]

一周发朋友圈超过10条的话痨有21人。

代码语言:javascript
复制
t.发朋友圈条数.value_counts()
代码语言:javascript
复制
1     88
2     53
3     29
5     19
4     17
6     11
10     6
7      6
8      5
12     4
Name: 发朋友圈条数, dtype: int64

秘密2:我的好友中发过朋友圈的好友更倾向于一周只发一条朋友圈。

image-20210829233753545

秘密3:几个培训机构的营销号发朋友圈最频率,现在就把你们删掉。

点赞数排名前7的朋友圈:

image-20210830000551622

评论数排名前7的朋友圈:

image-20210830000821464

筛选出有时间信息的朋友圈统计大家的发朋友圈时间倾向:

image-20210830003202596

秘密4:好友们最倾向在中午12点和晚上7点发朋友圈。

朋友圈内容词云图:

代码语言:javascript
复制
import jieba
import stylecloud
from IPython.display import Image

words = df.内容.apply(jieba.lcut).explode()
words = words[words.apply(len) > 1]
words = words[~words.isin(["包含", "图片", "视频", "天前", "小时", "昨天", "自己"])]
stylecloud.gen_stylecloud(text=' '.join(words), max_words=500,
                          collocations=False,
                          font_path=r'C:\Windows\Fonts\msyhbd.ttc',
                          icon_name='fas fa-square',
                          size=653,
                          output_name='tmp.png')
Image(filename='tmp.png')

image-20210830005044251

评论区内容词云图:

代码语言:javascript
复制
import jieba
import stylecloud
from IPython.display import Image

words = df.评论列表.dropna().apply(jieba.lcut).explode()
words = words[words.apply(len) > 1]
words = words[~words.isin(["回复", "免费", "栏目", "一个", "包含", "其他"])]
stylecloud.gen_stylecloud(text=' '.join(words), max_words=500,
                          collocations=False,
                          font_path=r'C:\Windows\Fonts\msyhbd.ttc',
                          icon_name='fas fa-thumbs-up',
                          size=653,
                          output_name='tmp.png')
Image(filename='tmp.png')

image-20210830005446745

从词云图看来,我的朋友圈都爱数据爱技术爱学习爱知识,这真是惊人的密码…

☀️PC端朋友圈爬取代码与难点🌟

保证节点在可视范围内能够被完整截图:

image-20210830010451377

节点的底部位置比显示界面更大时表示在外面,按一下向下的方向键。

解析节点的数据:

image-20210830010710474

对内容数据直接取父节点的Name,获取完整的全部文本,解析字符串即可得到昵称、发布时间等信息。

第一麻烦点是解析出点赞和评论,上述代码之所以那么复杂是因为存在只有点赞、只有评论、既有点赞又有评论,点赞和评论都没有四种情况。为了能够同时适配这四种情况,经过反复测试最终编写出上述代码。上述代码基于必定存在的评论按钮为基准点进行查找。

第二个麻烦点是想精准只截图片、视频或视频号,需要非常多的异常检测代码,每种情况变化都非常大,很难通用。最终我直接放弃,选择直接对整个节点包含昵称一起截图。对一个节点是否进行截图,取决于这个节点的文本是否包含视频或图片关键字。

注意:截屏调用节点的CaptureToImage方法即可对指定节点的范围截图保存到指定文件。

批量爬取代码:

image-20210830011925936

注意上述代码处理翻页时的异常情况,当节点不存在任何文本内容时,说明定位到了一个加载数据的节点,我们可以先按一次向上方向键回退之后,再按一下向下的方向键,即可定位到刚加载的新节点。如果回退再向下之后,名称依然是空,说明已经将朋友圈能够拉取到的数据都加载完了,可以结束程序。

⚠️说明:本文作为第一节的参考答案并不会提供可以直接复制粘贴的代码,还需要各位童鞋们自己独立完成作业。不需要写到我这么复杂,根据实际需求简化代码编写即可。 完整代码已经零碎的全部给到大家,剩下的可以根据理解,自己取敲即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据分析实例 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🌀朋友圈数据爬取⚡
  • 🧚好友朋友圈数据分析🎉
  • ☀️PC端朋友圈爬取代码与难点🌟
相关产品与服务
腾讯云图数据可视化
腾讯云图数据可视化(Tencent Cloud Visualization) 是一站式数据可视化展示平台,旨在帮助用户快速通过可视化图表展示大量数据,低门槛快速打造出专业大屏数据展示。精心预设多种行业模板,极致展示数据魅力。采用拖拽式自由布局,全图形化编辑,快速可视化制作。腾讯云图数据可视化支持多种数据来源配置,支持数据实时同步更新,同时基于 Web 页面渲染,可灵活投屏多种屏幕终端。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档