zl程序教程

您现在的位置是:首页 >  其他

当前栏目

抓取微博 10w 余转发信息,构建 N 层转发关系网络图谱

2023-04-18 16:26:49 时间

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

在不久前发布的微博转发爬虫一文中:

2021 微博最新转发爬虫发布

分享了抓取微博的转发具体信息的爬虫 pyd 文件。但是单条微博最多只能抓到 1w 左右的转发,近日得空升级更新了下,以敲钟人李文亮英雄的最后一条微博为例子,实际抓到 10w+条抓发时仍可继续抓取,理论上可以全部抓取。更新的文件依然在上文链接中获取。

新的文件除了抓发数量上限有所升级外,还对微博 id 的格式做了自动转化处理,比如本例中的微博链接可以是:

https://weibo.com/1139098205/Is9M7taaY

数字 1139098205 是用户 id,最后斜杠后面的 Is9M7taaY 才是微博 id。

链接也可以是:

https://m.weibo.cn/detail/4467107636950632

上面的 4467107636950632 也是微博 id。它们可以通过转发爬虫的链接同目录下的文件 parseMid 互相转发,不过还是不方面,这次的爬虫文件,外面无论是指定 id 为 4467107636950632 还是 Is9M7taaY ,内部都会自动转化。

该文件不需要 json 配置,只需新建 py 按以下代码格式使用即可(下述代码左右滑动观看)。

from NewSuperWeiboForwardSpider import NewSuperWeiboForward
if __name__ == '__main__':
    # cookie 要换的,参考B站视频 BV1F44y1i7dq
    forwardSpider = NewSuperWeiboForward(mid='Is9M7taaY',
    start_page=1,
    limit=1000000,
    cookie='eat cookie')
    forwardSpider.crawl()

上述的 mid 也可以传入 4467107636950632 ,抓取的是同一条微博的转发。

保存的结果文件在代码根目录的 forward 文件下的 {mid}.csv 文件中。如下:

结果文件

最后使用 pyecharts 构建了该条微博的 N 层转发关系网络。如下

1 层转发网络

2 层转发网络

3 层转发网络

4 层转发网络

发现等 N>=3 时的网络已经近似等于 3 层网络了,说明转发网络几乎只能触达影响 3 层,不过指数爆炸了 3 次,影响力不可小觑。