Python实战:5分钟搞定微博爬虫,自动备份你的微博内容(附完整代码)
Python实战5分钟搞定微博个人内容备份零基础友好版每次刷微博时看到自己多年前发的动态总有种时光穿越的错觉。那些深夜的碎碎念、旅行的打卡照、突发奇想的段子都是珍贵的数字记忆。但平台内容随时可能调整展示规则甚至存在误删风险。今天要分享的这套方案能让你的微博内容像照片一样定期自动备份到本地电脑。1. 准备工作小白也能搭建的环境在开始之前我们需要准备最基础的工具箱。别被编程二字吓到整个过程就像组装乐高积木一样简单。必备工具清单Python 3.6推荐3.8版本代码编辑器VS Code或PyCharm社区版微博账号需要登录状态安装Python时记得勾选Add Python to PATH选项这样系统才能识别python命令。验证安装是否成功只需要在命令行输入python --version接下来安装我们需要的三个关键组件pip install requests pandas tqdmrequests负责网络通信pandas处理数据导出tqdm则提供美观的进度条。这三个库的组合就像瑞士军刀的基础模块能解决80%的自动化需求。2. 获取你的微博专属密钥微博的移动端接口比网页版更友好我们需要先找到自己的用户ID。登录微博网页版后打开个人主页地址栏中那一串数字就是你的UIDhttps://weibo.com/u/1234567890其中的1234567890就是需要记录的ID。更简单的方法是直接在搜索框输入你的昵称从结果页URL获取这串数字。为了确保能获取完整内容我们还需要临时获取登录状态标识。按F12打开开发者工具切换到Network网络标签刷新页面后任意点击一个请求在Headers选项卡中找到Cookie字段复制整个字符串备用。注意Cookie相当于临时密码请勿分享给他人。脚本运行完成后可以立即在微博账号设置中清除已登录设备。3. 完整备份脚本解析下面这个不到100行的脚本包含了所有核心功能。新建weibo_backup.py文件复制以下代码import requests import pandas as pd from tqdm import tqdm import time import os class WeiboArchiver: def __init__(self, cookie): self.headers { User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X), Cookie: cookie } self.session requests.Session() def fetch_weibos(self, uid, max_pages5): weibo_data [] container_id f107603{uid} for page in tqdm(range(1, max_pages1), desc备份进度): url fhttps://m.weibo.cn/api/container/getIndex?typeuidvalue{uid}containerid{container_id}page{page} try: resp self.session.get(url, headersself.headers).json() if resp[ok]: for card in resp[data][cards]: if mblog in card: blog card[mblog] weibo_data.append({ 发布时间: blog[created_at], 正文内容: blog[text], 点赞数: blog[attitudes_count], 转发数: blog[reposts_count], 评论数: blog[comments_count] }) time.sleep(1) # 礼貌性延迟 except Exception as e: print(f第{page}页获取异常: {str(e)}) return pd.DataFrame(weibo_data) if __name__ __main__: YOUR_UID input(请输入你的微博UID: ).strip() YOUR_COOKIE input(粘贴复制的Cookie: ).strip() archiver WeiboArchiver(YOUR_COOKIE) df archiver.fetch_weibos(YOUR_UID) backup_file fweibo_backup_{time.strftime(%Y%m%d)}.xlsx df.to_excel(backup_file, indexFalse) print(f\n备份完成文件已保存为: {backup_file}) print(f共备份{len(df)}条微博最早发布于{df[发布时间].iloc[-1]})4. 一键执行与结果查看保存脚本后在文件所在目录打开命令行Windows用户按住Shift右键选择在此处打开Powershell窗口输入python weibo_backup.py按照提示输入你的UID和Cookie后程序就会开始工作。你会看到一个动态进度条每完成一页数据获取进度条就会前进一格。默认设置会备份最近5页内容约100-150条微博如果想调整数量修改脚本中max_pages参数即可。执行完成后当前目录会生成一个Excel文件命名格式为weibo_backup_日期.xlsx。文件内容示例发布时间正文内容点赞数转发数评论数05-20 10:15今天天气真好 #随手拍243505-18 22:30分享一个冷知识...15628425. 进阶技巧与个性化设置基础功能实现后我们可以根据需求添加更多实用功能图片备份增强版 在fetch_weibos方法内添加图片处理逻辑if pics in blog: pic_urls [pic[large][url] for pic in blog[pics]] weibo_data[-1][图片链接] \n.join(pic_urls) # 自动下载图片 for i, url in enumerate(pic_urls): img_data requests.get(url, headersself.headers).content with open(fweibo_images/{blog[id]}_{i}.jpg, wb) as f: f.write(img_data)定时自动备份 使用Windows任务计划或Mac/Linux的crontab设置每周自动运行# Linux/Mac定时任务示例每周日23点运行 0 23 * * 0 cd /path/to/script python weibo_backup.py多账号管理 创建config.ini文件存储多个账号信息[account1] uid 123456 cookie abcdef [account2] uid 789012 cookie ghijk然后在主程序中读取配置import configparser config configparser.ConfigParser() config.read(config.ini)6. 常见问题排雷指南Q1运行时报SSL证书错误pip install --upgrade certifiQ2获取的内容不全检查Cookie是否过期有效期通常2-3天增加max_pages参数值在headers中添加X-Requested-With: XMLHttpRequestQ3Excel打开乱码导出时指定编码格式df.to_csv(backup.csv, indexFalse, encodingutf_8_sig)Q4想备份特定时间段的微博修改API请求URL添加since_id参数url fhttps://m.weibo.cn/api/container/getIndex?since_id{since_id}...这套方案我已经稳定使用两年多累计备份了8000条微博。最惊喜的是某次找回了一条被系统误删的纪念日动态。现在我的备份脚本每周日晚上自动运行生成的Excel文件会自动同步到NAS和云盘形成了三重保险。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2488913.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!