第一步,以一个给定的明星 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,一顿点点点的操作后,可视化图形就出来了。
全景图
局部放大图