前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一键备份微博并导出生成PDF,顺便用Python分析微博账号数据

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

作者头像
苏生不惑
发布2020-06-04 17:45:23
8.5K2
发布2020-06-04 17:45:23
举报
文章被收录于专栏:苏生不惑

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

稳部落

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

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

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

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

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

代码语言:javascript
复制
支持增量备份, 备份过一次后, 可以只备份前10页内容, 加快备份速度

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

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

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

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

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

代码语言:javascript
复制
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页微博记录

开始下载图片。

执行完毕,在本地生成了你的微博电子书。

生成目录下有源文件和PDF。

打开里面的HTML文件,备份的微博按照月份分类。

看看2019年4月7号的这条微博,图片都下载到本地了。

生成的PDF文件近30MB,不算太大。

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

Python 备份和分析微博

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

打开 https://m.weibo.cn/ 登录你的微博账号获取headers的 cookie ,就是箭头里那一长串字符。

下载代码到本地,由于是国外网站下载会比较慢,可以在公众号内回复 微博 获取。

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

代码语言:javascript
复制
{
	"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安装以下依赖包。

代码语言:javascript
复制
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填到配置文件。

没问题的话可以看到脚本开始执行了。

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

每个月转发评论点赞总数图,可以看到2016-2018年的微博数据是高峰期。

原创微博和转发微博数据比例。

李健发微博的工具主要为pc网页和iPad。

生成的目录下还有所有微博的图片,视频,txt文件和excel数据。

原创微博里转发最高的为2015年这条宣传电影《太平轮》主题曲 假如爱有天意 的微博https://www.weibo.com/1744395855/CruOoDGtB ,不过也才2万多,和某些动辄百万转发的流量明星的确不能比,毕竟人家水军多。

下图是李健微博转发最高的20条微博,平均不到1万的转发和评论,点赞倒是都有几万。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 苏生不惑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 稳部落
  • Python 备份和分析微博
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档