复杂网络建模 | 构建 M 层 N 节点的微博深度转发网络

2023-07-03 14:38:50 浏览数 (1)

今日推送文章的主题即:

由一条微博出发,该微博作为网络的中心节点或者所有节点的祖先节点,视为第一层。

然后抓取他的转发微博,将这些转发微博视为第二层的节点。

第三层、第四层、第 M 层类似,可以无限递归下去。

这其实是一个广度优先遍历问题,即 BFS。

不过由于某些微博的转发可能多达十万甚至百万,有必要对网络规模作出限制,这里采取的做法是限制每一层节点最多为 N 个

以前推送过如何抓取过一条微博的转发:

2021 微博最新转发爬虫发布

认真分析了上述推送的指南的话,抓很多条微博的转发也不是问题。

那如何将这些转发连结成深度网络呢?

最核心的一点,通过微博 id 作为桥梁;

对于转发的结果文件而言,文件名代表某条微博,文件中的 mid 列即是该微博的转发的 id,那么就可以设置从文件名到 mid 列的 df.shape[0] 条连边;

如此往复,深度网络就出来了

也可以通过 weibo_link 构建,核心是保证起点终点唯一且可溯源

去年分享过一篇推送:

零配置构建微博多层转发网络可视化的网站来了

在这个网站,只需输入根微博 id,可以一键生成上面所说的深度网络,后台会自动执行爬虫 可视化的整个过程;只怪当时太匆匆,M、N 都只是默认值,无法自定义,上周末有空重构了下,可以设置多级转发网络的深度 M 和每层节点规模 N。

设置好参数后点击提交构建按钮即可开始构建多级深度转发网络。

只需一盏茶的功夫,你就可以在页面左下方按钮下载结果文件

如果网络规模较大,也可能是一顿火锅的时间。

以五月天最热的一条微博为例,构建下面这样的四层深度网络,整个过程大致花了 20 分钟。

工具地址为:

https://weibo-crawl-visual.buyixiao.xyz/weibo-repost-path-network-generator

0 人点赞