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

月小水长

共 1309字,需浏览 3分钟

 ·

2021-12-24 23:31

点击上方 月小水长 并 设为星标,第一时间接收干货推送

这是 月小水长 的第 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 NewSuperWeiboForwardif __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 次,影响力不可小觑。

需要指定微博的指定层数的转发网络的读者,下文留言即可,转评赞此文者优先。

转发构建的教程呢?等阅读过万,下次一定!

浏览 119
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报