文章目录
- 新浪微博相册下载器:多线程批量抓取高清原图
- 1、解决了什么问题
- 2、技术原理
- 3、使用方式
- 4、使用场景和注意事项
- 5、适合谁
新浪微博相册下载器:多线程批量抓取高清原图
Sina-Weibo-Album-Downloader 在 GitHub 上拿到了 129 Star。
这是一个 Python 3 写的命令行工具,功能单一:用多线程从新浪微博相册里下载高清原图。输入用户的 OID 和 cookies,运行后自动遍历相册列表、抓取每张图片的原始尺寸地址,并发写入本地磁盘。
1、解决了什么问题
微博相册中存放着大量摄影师作品、插画、Cosplay 照片和活动记录。浏览时可以正常看图,但想要保存原图只能逐张点击大图后另存。相册页数一多,操作成本陡增。
微博官方没有提供批量下载功能。第三方工具有的已经停止维护,有的需要付费,也存在因合规问题被下架的情况。这个开源脚本回避了这些问题:只要微博的相册 API 保持可用,脚本的调整空间比 GUI 工具大。
2、技术原理
核心依赖只有一个 requests 库,不依赖爬虫框架。工作流程分两阶段:先通过微博的相册列表接口获取指定用户的所有相册及其中每张图片的 ID,再逐张请求原图 URL 并写入文件。多线程并发在第二阶段发挥作用,同时拉取多张图片,比顺序下载快得多。
OID 是微博用户的数字唯一标识,可以从用户主页 URL 中直接提取。cookies 用于通过登录状态校验,需要在浏览器登录微博后从开发者工具中复制。
3、使用方式
操作分为三步:
- 打开浏览器开发者工具,定位目标用户的微博主页,从 URL 或页面请求中获取 OID,同时复制完整的 cookies 字符串。
- 将 OID 和 cookies 填入脚本中标注的位置。
- 在终端执行 Python 脚本,图片会自动下载到当前目录。
整个过程不需要安装数据库、不需要配置代理,Python 环境里执行pip install requests之后就能跑。
4、使用场景和注意事项
备份是首要场景:把自己的微博相册完整下载到本地,防止账号异常或图片被删除后数据丢失。其次是素材收集:摄影、设计、绘画领域的创作者常在微博相册发布高分辨率作品,批量下载后可以离线浏览和整理。
几点需要注意:cookies 有过期时间,失效后需要重新获取。下载频率过高可能触发微博的请求限制,可以按需调整脚本中的线程数和请求间隔。项目使用 Apache 2.0 许可证,允许自由修改和分发。
5、适合谁
- 需要备份自己或他人微博相册内容的用户
- 摄影、设计、绘画爱好者,希望批量收集参考素材
- 有基础 Python 使用经验、能独立获取 cookies 和 OID 的开发者
- 对微博数据采集感兴趣、想在此脚本基础上做二次开发的人
okies 和 OID 的开发者
- 对微博数据采集感兴趣、想在此脚本基础上做二次开发的人