如何批量下载微博相册高清图片:填3个参数、跑1条命令,全自动搞定
【免费下载链接】Sina-Weibo-Album-DownloaderMultithreading download all HD photos / pictures from someone's Sina Weibo album.项目地址: https://gitcode.com/gh_mirrors/si/Sina-Weibo-Album-Downloader
你有没有过这样的时刻:刷到一位摄影博主的微博,想把整本相册存下来当壁纸,于是右键、另存为、下一张……循环了半小时,才存了不到三分之一,存下来的还是被压缩过的预览图。微博相册批量下载这件事,手动做起来远比想象中痛苦。
如果你也经历过这种手指发酸、图片却还不高清的时刻,这个小工具值得花三分钟试试。它叫 Sina-Weibo-Album-Downloader,一个用 Python 3 写的微博相册批量下载工具。你要做的只有一件事:填好三个参数,跑一条命令,剩下的下载工作全部交给多线程自动完成。
3分钟跑通:最短上手路径
先不聊原理,按下面四步走,最快三分钟就能看到第一张图落地。
- 获取代码。在终端里执行克隆命令,把项目拉到你本机:
git clone https://gitcode.com/gh_mirrors/si/Sina-Weibo-Album-Downloader- 安装唯一依赖。整个项目只依赖
requests一个第三方库,一条命令装好:
pip install requests打开脚本改配置。用任意编辑器打开
sina_weibo_album_downloader.py,文件顶部的配置区只有三个值需要你填(怎么填,下一节细说)。运行。回到终端执行:
python sina_weibo_album_downloader.pyWindows 用户也可以直接双击项目里的run.bat,Linux/macOS 用户运行run.sh,效果完全一样。跑起来后,程序会在当前目录自动生成一个image用户ID文件夹,所有照片都会存进这里。
三个关键参数从哪里来
整个配置区其实只有三样东西,我把它们整理成一张对照表,照着填就不会错:
| 参数 | 在哪里获取 | 如何填写 |
|---|---|---|
OID(用户ID) | 打开目标用户的微博主页,看浏览器地址栏里weibo.com/u/后面那串数字 | 把数字原样粘贴,例如1005051233281285 |
COOKIES | 登录你的微博后按 F12 打开开发者工具,切到 Network 标签,刷新页面,任选一个请求,在请求头里找到 Cookie 并复制整串值 | 整串粘贴进双引号里,不要改动格式 |
CRAWL_PHOTOS_NUMBER | 目标用户主页的"图片墙"旁边会显示相册照片总数 | 填一个不小于总数的数字,比如相册有 186 张就填186 |
配置好之后,文件顶部看起来是这样的,注意别破坏引号和等号:
# Configuration Start OID = 1005051233281285 # 目标用户的ID,主页地址栏里的数字串 COOKIES = "SUB=_2AkMhFc9hf8..." # 登录微博后,F12里复制的完整Cookie CRAWL_PHOTOS_NUMBER = 186 # 想下载的照片数量,不小于相册总数即可 # Configuration ENDOID决定"下载谁的相册",COOKIES决定"以谁的身份访问",CRAWL_PHOTOS_NUMBER决定"下载多少张"。三者各司其职,缺一不可。
一次完整操作演示:把参数填进去跑起来
下面这张截图是项目作者演示配置时的完整画面,左侧是微博主页、右侧是脚本配置代码、底部是开发者工具里的 Cookie 取值位置,正好把上面表格里的两处"获取现场"拼在了一起。
对照截图,完整流程是这样的:
第一步,拿到用户ID。打开目标用户主页,地址栏长这样:weibo.com/u/1005051233281285,后面这串1005051233281285就是OID。它通常以100505开头,非常好认。
第二步,复制 Cookie。用你自己的账号登录微博,按 F12 打开开发者工具,切到 Network 标签,刷新一下页面,随便点开一个图片或接口请求,在请求头(Request Headers)里找到Cookie:那一行,把冒号后面的整串值完整复制出来,粘贴到脚本的COOKIES变量里。
第三步,填数量并运行。在截图里可以看到这位用户主页显示"图片墙 186",所以CRAWL_PHOTOS_NUMBER填186。保存文件,运行命令,终端会逐个打印正在下载的图片文件名,等它安静下来,打开image1005051233281285文件夹,照片已经齐了。
关于下载质量可以放心:程序走的是微博高清图床(ww1.sinaimg.cn/large),拿到的就是原始大图,而不是网页上被压缩过的预览缩略图。这也是很多手动保存党最终转向脚本的原因——同样一张照片,手动存下来的和脚本存下来的,清晰度完全是两个档次。
进阶玩法与常见坑
工具本身足够简单,但有几个细节值得提前知道,能帮你少走弯路。
想换一个人下载?只需要把OID改成新的用户ID,再跑一次命令即可,两个用户的照片会分别存进各自的文件夹,互不干扰。想同时下载多个人的相册,复制几份脚本、分别改配置、轮流运行就行。
数量填大一点更稳妥。程序按每页 20 张的方式去翻相册,CRAWL_PHOTOS_NUMBER更像一个"目标值"。如果你不确定相册到底有多少张,直接填一个偏大的数字,实际能下载多少取决于对方相册的真实内容,不会因为你多填了几张就出错。
几个常见的坑,提前打个预防针:
- Cookie 会过期,这是头号问题。微博的 Cookie 有有效期,过期之后程序就拿不到相册数据,表现为"运行了但没有图片落地"。解决办法很简单:重新登录微博,再复制一次新的 Cookie。
- 只能下载公开可见的内容。这是微博接口本身的限制,粉丝可见、私密相册都不在下载范围内,别指望绕过。
- 重复运行会重复下载。代码里"跳过已存在文件"的判断目前处于注释状态,也就是说同一份相册跑两遍,图片会再存一遍,注意留意磁盘空间。
- 图片格式不用操心。jpg、png、gif 都在下载范围内,动图也能正常保存。
写在最后
回到开头的场景:下次再刷到想收藏的微博相册,不必再一张张右键另存为,也不用担心存下来的是模糊的压缩图。花三分钟填好三个参数,跑一条命令,然后看着终端里一行行文件名滚动——多线程帮你把几百张高清图并行拉回本地,省下的时间足够你慢慢挑壁纸了。
如果你正好有一本想收藏的相册,现在就可以打开项目目录,按上面的步骤配置一次。第一次跑通之后,你会觉得这个工具好用得不像话。
【免费下载链接】Sina-Weibo-Album-DownloaderMultithreading download all HD photos / pictures from someone's Sina Weibo album.项目地址: https://gitcode.com/gh_mirrors/si/Sina-Weibo-Album-Downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考