抓取微博指定用户的关注信息,并做了一定的可视化工作。下面以抓取明星关注为例,阐述从抓取数据,到关系网络的构造,最后使用 gephi 可视化的全流程。

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

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

nodes.csv 四个字段,id 即该明星的微博 userId,label 是其名字,weight 是在关系网络中被关注的次数,class 是 louvain 聚类的结果。

edges.csv 三个字段:source,target,weight,分别对应边的起点、终点、权重。

gephi 最终的效果图示:

全景图.png

网络边缘放大图.png

网络中心放大图.png

谁是十八线,谁是一线,一目了然,各位明星,如有冒犯,纯属无心之举。

动态效果可以参考视频:

本文首发: BuyiXiao’s Blog

链接地址:https://buyixiao.github.io/blog/weibo-superstar-relation-network-visual.html

转载需注明来源。