微博明星关系网络可视化
抓取微博指定用户的关注信息,并做了一定的可视化工作。下面以抓取明星关注为例,阐述从抓取数据,到关系网络的构造,最后使用 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 最终的效果图示:
谁是十八线,谁是一线,一目了然,各位明星,如有冒犯,纯属无心之举。
动态效果可以参考视频:
本文首发: BuyiXiao’s Blog
链接地址:https://buyixiao.github.io/blog/weibo-superstar-relation-network-visual.html
转载需注明来源。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BuyiXiao's Blog!
评论
ValineDisqus