在《⭐UI自动化工具轻松实现微信消息收发⚡朋友圈爬取⁉️》文末给童鞋们布置了一个作业,批量朋友圈爬取,不知道大伙们是否还有映像。
看到很多小伙伴们踊跃报名参与,不禁要给你们点个赞。考虑到很多小伙伴想做却做出来,这…贴心的我这不就来给你们公布参考答案啦?
对相关基础还不了解的童鞋请参考前文:
首先我们开始爬取朋友圈:
去外面转了一圈,再回来发现10分钟之内就爬完了一周的朋友圈:
当然这是因为我的微信好友太少,一周总共也只发了不到1000条消息。
晚上重新爬了一下,爬到8月21号直到朋友圈的数据无法继续拉取,始终都是这个状态说明已经无法拉取再早的朋友圈数据:
共爬到1186条朋友圈动态数据,耗时12分钟:
打开Excel简单的美化一下格式就得到如下结果:
筛选了有点赞和评论的数据。
同时对于每一条存在图片或视频的朋友圈,都会在本地存储一张截图:
可以看到在这近1200条朋友圈中有725条数据触发的图片或视频关键字产生截图:
读取数据:
import pandas as pddf = pd.read_excel("朋友圈.xlsx")df = df.convert_dtypes()
我的好友给谁的点赞最多呢?
t = df.groupby("昵称").agg( 点赞总人数=("点赞人数", "sum"), 评论总条数=("评论条数", "sum"), 发朋友圈条数=("序号", "count"))display(t.sort_values("点赞总人数", ascending=False).head(10))
原来我的好友中,大家最喜欢给这些数据分析相关的好友点赞:
排除点只发一条朋友圈的平均点赞比例最高的依然是数据分析相关的:
秘密1:我的朋友圈中,数据分析相关的好友的朋友最容易被点赞。
t[t.发朋友圈条数 > 10].shape[0]
一周发朋友圈超过10条的话痨有21人。
t.发朋友圈条数.value_counts()
1 882 533 295 194 176 1110 67 68 512 4Name: 发朋友圈条数, dtype: int64
秘密2:我的好友中发过朋友圈的好友更倾向于一周只发一条朋友圈。
秘密3:几个培训机构的营销号发朋友圈最频率,现在就把你们删掉。
点赞数排名前7的朋友圈:
评论数排名前7的朋友圈:
筛选出有时间信息的朋友圈统计大家的发朋友圈时间倾向:
秘密4:好友们最倾向在中午12点和晚上7点发朋友圈。
朋友圈内容词云图:
import jiebaimport stylecloudfrom IPython.display import Imagewords = 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")
评论区内容词云图:
import jiebaimport stylecloudfrom IPython.display import Imagewords = 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")
从词云图看来,我的朋友圈都爱数据爱技术爱学习爱知识,这真是惊人的密码…
保证节点在可视范围内能够被完整截图:
节点的底部位置比显示界面更大时表示在外面,按一下向下的方向键。
解析节点的数据:
对内容数据直接取父节点的Name,获取完整的全部文本,解析字符串即可得到昵称、发布时间等信息。
第一麻烦点是解析出点赞和评论,上述代码之所以那么复杂是因为存在只有点赞、只有评论、既有点赞又有评论,点赞和评论都没有四种情况。为了能够同时适配这四种情况,经过反复测试最终编写出上述代码。上述代码基于必定存在的评论按钮为基准点进行查找。
第二个麻烦点是想精准只截图片、视频或视频号,需要非常多的异常检测代码,每种情况变化都非常大,很难通用。最终我直接放弃,选择直接对整个节点包含昵称一起截图。对一个节点是否进行截图,取决于这个节点的文本是否包含视频或图片关键字。
注意:截屏调用节点的CaptureToImage方法即可对指定节点的范围截图保存到指定文件。
批量爬取代码:
注意上述代码处理翻页时的异常情况,当节点不存在任何文本内容时,说明定位到了一个加载数据的节点,我们可以先按一次向上方向键回退之后,再按一下向下的方向键,即可定位到刚加载的新节点。如果回退再向下之后,名称依然是空,说明已经将朋友圈能够拉取到的数据都加载完了,可以结束程序。
⚠️说明:本文作为第一节的参考答案并不会提供可以直接复制粘贴的代码,还需要各位童鞋们自己独立完成作业。不需要写到我这么复杂,根据实际需求简化代码编写即可。
完整代码已经零碎的全部给到大家,剩下的可以根据理解,自己取敲即可。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/118784.html
?前几天有个粉丝疯狂私信我问:博主,博主,有没有什么办法能将我夜里看的小视频/爱情动作小说给藏起来,藏的越隐蔽越好,我怕我女朋友发现了揍我!(听后我直乐呵,可见这是位名副其实的妻管严哦~)? ?一开始我是拒绝的,毕竟——我可是个正经人!但是他又是加我VX,又是关注我公众号(看看我主页左侧有二维码哦!)还说我发的博文他几乎都第一时间点赞,评论,收藏支持。瞬间就打动了我,于是我决定帮他一把(咳咳,...
上次给大家分享了一个springboot+vue的校园招聘系统,视频教程加项目源码,都是开源的,应该说很香了,今天再给大家分享一个不错的springboot的项目。 老规矩,开源,开源,开源!!! 金九银十来了,小伙伴们,冲啊!前面已经整理了很多的面试题,拿去学习吧! 1,❤️爆肝!整理了一周的Spring面试大全【含答案】,吊打Java面试官【建议收藏】!❤️ 2,❤️肝完了,一天掌握数据...
摘要:文件指针此函数用于关闭文件。完工被逮了也别说是我教的哈我怕被打可能某些小白没有环境,也急需此方法,所以本博主直接将我的文件分享给大家下载下面这张图,操作我相信你肯定会的如果你从本文中学到了知识,喜欢它,那么我很荣幸。 ...
阅读 2226·2023-04-26 00:01
阅读 770·2021-10-27 14:13
阅读 1767·2021-09-02 15:11
阅读 3337·2019-08-29 12:52
阅读 489·2019-08-26 12:00
阅读 2535·2019-08-26 10:57
阅读 3339·2019-08-26 10:32
阅读 2819·2019-08-23 18:29