​​​​ 一键备份微博并导出生成PDF,顺便用Python分析微博账号数据 | 苏生不惑的博客

一键备份微博并导出生成PDF,顺便用Python分析微博账号数据

苏生不惑第139 篇原创文章,将本公众号设为星标,第一时间看最新文章。

关于微博之前写过以下文章:

那些你可能不知道的微博奇技淫巧

想方便快捷的分享/收藏图片?试试免费好用的微博/b站图床

如何轻松下载腾讯/微博/优酷/爱奇艺/b站等全网视频?

这里再分享下如何快速导出你的所有微博数据,然后用Python分析某个微博账号的数据,比如高赞,转发,评论微博,微博词云,微博发布时间轴,以及使用的手机。

稳部落

这是一个专业备份导出微博记录工具 https://www.yaozeyuan.online/stablog/ ,备份原理是登录https://m.weibo.cn/ 后, 模拟浏览器访问, 获取登录用户发布的所有微博并备份,即使炸号的微博, 只要能登录 https://m.weibo.cn/ 后还能看见自己的微博就可以备份。

这个工具使用说明见 https://github.com/YaoZeyuan/stablog ,支持Windows和Mac版。

打开软件后登录自己的微博,这里也可以刷微博。
image.png

打开系统设置可以看到总共微博条数2695,有269页,抓取时间要2个多小时。

image.png
设置下排序规则,是否需要图片,PDF清晰度还有时间范围。
image.png

1
2
3
4
5
6
7
8
9
支持增量备份, 备份过一次后, 可以只备份前10页内容, 加快备份速度

可在【管理数据】标签页中浏览已备份的微博记录列表

支持断点续传, 中途停止后, 可以记下备份的页码, 再次运行时修改【备份范围】配置项, 从该页之后再备份即可

32位操作系统下, 当pdf体积超过2GB后, 会提示文件已损坏. => 解决方案是更换64位操作系统, 或调整【时间范围】/【自动分卷】配置项, 通过限定单本pdf容量, 手工将pdf体积控制在2GB之内

利用【开发者模式】配置项, 可以极大加快微博备份速度。

image.png

点击开始备份,可以看到运行日志。
image.png
image.png

1
2
3
4
5
6
7
8
9
10
2020-05-26 19:56:44.780: [FetchCustomer] 本次抓取的页码范围为:0~10 
2020-05-26 19:56:44.824: [FetchCustomer] 准备抓取第1/271页微博记录
2020-05-26 19:56:45.275: [FetchCustomer] 第1/271页微博记录抓取成功, 准备存入数据库
2020-05-26 19:56:45.967: [FetchCustomer] 第1/271页微博记录成功存入数据库
2020-05-26 19:56:45.968: [FetchCustomer] 已抓取1/271页记录, 休眠20s, 避免被封
2020-05-26 19:57:05.970: [FetchCustomer] 准备抓取第2/271页微博记录
2020-05-26 19:57:06.310: [FetchCustomer] 第2/271页微博记录抓取成功, 准备存入数据库
2020-05-26 19:57:07.039: [FetchCustomer] 第2/271页微博记录成功存入数据库
2020-05-26 19:57:07.040: [FetchCustomer] 已抓取2/271页记录, 休眠20s, 避免被封
2020-05-26 19:57:27.041: [FetchCustomer] 准备抓取第3/271页微博记录

开始下载图片。
image.png

image.png
执行完毕,在本地生成了你的微博电子书。
image.png
生成目录下有源文件和PDF。
image.png
打开里面的HTML文件,备份的微博按照月份分类。
image.png
看看2019年4月7号的这条微博,图片都下载到本地了。
image.png
生成的PDF文件近30MB,不算太大。
image.png

这个工具只能备份自己的微博数据,如果想备份其他人的,可以使用下面的Python脚本,它还能分析某个微博账号的数据。

Python 备份和分析微博

这是个开源项目https://github.com/nlpjoe/weiboSpider ,使用方法很简单,先登录微博复制你的cookie,然后修改配置文件,之后执行脚本就可以了,看我的操作流程。

打开 https://m.weibo.cn/ 登录你的微博账号获取headers的 cookie ,就是箭头里那一长串字符。
image.png
下载代码到本地,由于是国外网站下载会比较慢,可以在公众号内回复 微博 获取。

之后修改配置文件config.json ,这里说明下,user_id_list填你要分析的微博账号uid,可以填多个,我这里填的是非常喜欢的歌手李健。filter为1表示分析原创微博,如果分析所有微博填0即可。since_date为从哪天的微博开始分析,然后就是把上面复制的cookie填到对应位置。
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"user_id_list": ["1744395855"],
"filter": 1,
"since_date": "2015-01-01",
"write_mode": ["csv", "txt"],
"pic_download": 1,
"video_download": 1,
"cookie": "xxx",
"mysql_config": {
"host": "localhost",
"port": 3306,
"user": "root",
"password": "123456",
"charset": "utf8mb4"
}
}

接着执行pip install -r requirements.txt安装以下依赖包。

1
2
3
4
5
6
7
8
requests==2.22.0
jieba==0.42.1
wordcloud==1.6.0
scipy==1.2.1
seaborn==0.10.0
pandas
lxml
tqdm

当然你也可以单独安装 pip --trusted-host pypi.doubanio.com install -U tqdm -i http://pypi.doubanio.com/simple

scipy要安装指定版本 pip --trusted-host pypi.doubanio.com install scipy==1.2.1 -i http://pypi.doubanio.com/simple

上面都配置好了,就开始执行脚本 python weibospider.py ,我是在Windows下使用的Python3.7,可能跟作者环境不一样,遇到了些问题。

如果执行出现错误SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed ,改动文件 weibospider.py 里的requests请求参数。

html = requests.get(url, cookies=self.cookie,verify=False).content

需要注意如果提示cookie错误或已过期,再刷新下 m.weibo.cn复制cookie填到配置文件。
image.png
没问题的话可以看到脚本开始执行了。
image.png

image.png

抓取完毕,开始生成李健的微博词云图,他的微博关键词为音乐,北京,朋友,歌手,电影,居然还提到了周杰伦。

image.png
每个月转发评论点赞总数图,可以看到2016-2018年的微博数据是高峰期。
image.png
原创微博和转发微博数据比例。

image.png
李健发微博的工具主要为pc网页和iPad。
image.png
生成的目录下还有所有微博的图片,视频,txt文件和excel数据。
image.png
原创微博里转发最高的为2015年这条宣传电影《太平轮》主题曲 假如爱有天意 的微博https://www.weibo.com/1744395855/CruOoDGtB ,不过也才2万多,和某些动辄百万转发的流量明星的确不能比,毕竟人家水军多。
image.png
下图是李健微博转发最高的20条微博,平均不到1万的转发和评论,点赞倒是都有几万。
image.png

ps:如果你想分析某个微博账号,自己又不会使用Python,联系我,包教包会,当然直接给你数据也可以。

推荐历史文章:

如何发一条空白的朋友圈

2019 年公众号 苏生不惑 近百篇原创文章整理

一个骚操作,公众号粉丝破10万!

微信撤回的消息也能看到!

如何找回bilibili(b站)收藏夹里失效的视频?

如何更优雅地使用 bilibili(b站)

如何更优雅地看电影/刷剧

那些你可能不知道的网络冷知识奇技淫巧

2020 最全百度网盘搜索,找电影资源不再愁

免费知识星球,每天更新

公众号 苏生不惑

扫描二维码关注或搜索微信susheng_buhuo