微博特定群体用户关系网络可视化

月小水长

共 839字,需浏览 2分钟

 ·

2021-10-13 20:11

    点击上方 月小水长 并 设为星标,第一时间接收干货推送

这是 月小水长 的第 87 篇原创干货

目前公众号平台改变了推送机制,点“赞”、点“在看”、添加过“星标”的同学,都会优先接收到我的文章推送,所以大家读完文章后,记得点一下“在看”和“赞”。
本篇可以说是给微博爬虫系列开了一个小方向,抓取微博特定用户的关注信息,并做了一定的可视化工作。下面以抓取明星关注为例,阐述从抓取数据,到关系网络的构造,最后使用 gephi 可视化的全流程。

第一步,以一个给定的明星 uid 为起点,爬取它的关注,接着爬关注的关注...从形式上看是一个递归的网络,所以设计了一个递归的爬虫,可以指定抓取指定的层数,断网或其他出错可以从上次爬到的地方继续;一般来说 3 层就非常多,以一个明星关注 100 个明星为例,第一层只有起点明星,第二层有 100 个明星,第三层就有 10000 个明星了,我使用杨幂的 uid 为起点,抓取 3 层网络,实测抓到了 2w+ 明星,20w+ 对明星关注关系,最后随机抽了 5000 条关注关系,2000 余明星。

第二步,根据上一步得到的数据构造关系矩阵,方便 gephi 可视化输入。这个关系矩阵需要两个 csv 文件表示,一个节点 nodes.csv 文件,另一个边表 edges.csv 文件。如下图所示。

节点表


边表


nodes.csv 四个字段,Id 即该明星的微博 UserId,Weight 是在关系网络中被关注的次数,class 是 louvain 聚类的结果。
edges.csv 三个字段,边的起点、终点、权重。

第三步,把数据导入 gephi,一顿点点点的操作后,可视化图形就出来了。


全景图





局部放大图

浏览 86
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报