hupo376787WeiboAlbumDownloader:微博相册批量下载,日期修正自动化

hupo376787/WeiboAlbumDownloader:微博相册批量下载,日期修正自动化

WeiboAlbumDownloader 在 GitHub 上目前有 310 Star。这是一个用 C# WPF 写的微博相册下载工具,界面经过全新设计,支持批量采集指定微博账号下的图片、视频和 LivePhoto。

1、核心功能:文件日期修正

微博相册下载这件事,用 Python 脚本也能做。同类工具大多有一个共同的问题:下载下来的图片,文件日期是下载当天的时间戳,而不是图片真正的发布时间。

当你想在资源管理器中按发博时间排序几千张图片时,只能依靠文件名里的日期手动整理。WeiboAlbumDownloader 把这个步骤自动化了。下载完成后,程序会获取每张图片对应的发博时间,精确到年月日时分秒,然后将文件的创建日期、修改日期、访问日期统一写为发博时间。

这个功能在代码层面不复杂,但在日常使用中,省去的手动整理时间相当可观。

正文顶部截图

2、数据源设计

程序支持两种数据源:weibo.com 和 weibo.cn。

weibo.com 走的是用户相册接口,返回 JSON 格式数据,不含视频。weibo.cn 走的是用户时间流接口,返回 HTML 格式数据,包含视频。如果某个用户发博历史较长,weibo.com 的数据可能在分页到某个节点后中断,此时切换 weibo.cn 可以获取更完整的时间线。作者也提到,部分视频因权限限制暂时无法下载,这个问题目前还没有解决。

3、登录与配置

登录环节用了 Selenium 自动化方案。点击软件内的扫码按钮,程序拉起浏览器,用户完成扫码后 Cookie 自动回填。相比手动在 F12 里复制 Cookie 再粘贴到配置文件的流程,扫码路径降低了操作门槛。

参数通过 Settings.json 管理,表里记录了关键字段:

字段 说明
WeiboCnCookie / WeiboComCookie 两个域名的 Cookie 分别配置
PushPlusToken 选填,填写后下载完成推送通知到微信
EnableCrontab / Crontab 支持定时自动执行,如 "14 2 * * *" 表示每天凌晨 2:14 触发
EnableDatetimeRange / StartDateTime 设定下载时间范围,只采集指定日期之后的图片
CountDownloadedSkipToNextUser 批量处理多用户时,本地已有 N 张图片则跳过该用户

定时任务在批量采集场景中比较实用。设置每天凌晨自动跑一次,不占用工作时间,本地数据始终接近最新状态。

4、界面与技术选型

软件 UI 基于 WPF,集成了 MicaWPF 实现窗体 Mica/Acrylic 效果。从截图来看,整体交互比命令行脚本有明显的体验提升。

README区域截图

核心依赖:

  • WPF:桌面端基础框架
  • MicaWPF:窗口视觉样式
  • Newtonsoft.Json:解析 API 返回的 JSON
  • HtmlAgilityPack:解析网页端返回的 HTML
  • Selenium:浏览器自动化与扫码登录
  • CronExpressionDescriptor / TimeCrontab:Crontab 表达式解析

下载过程中加入了随机延时,模拟人类浏览微博的节奏,降低触发反爬机制的概率。

5、作者的项目生态

作者 hupo376787 围绕社交媒体数据采集做了一组工具。除本项目外,还有银杏下载器(GinkgoDownloader),覆盖抖音、快手、小红书、推特等平台的作者主页作品下载;以及银杏美女吧(GinkgoBeautySelector),基于 YOLO11 模型做图片人物检测与筛选。三款工具覆盖了采集、下载、筛选的完整链条,有批量需求的用户可以串联使用。

6、适合谁用

需要定期存档微博图片的设计师、运营人员,或做社交媒体数据分析的开发者。如果只是偶尔下载几张图,网页端右键另存为就够了。但当你需要周期性采集某个账号的全部内容,并保持文件日期与发布时间一致时,这个工具能省去大量手工整理工作。

项目支持个性化定制,有特殊需求可以联系作者或提 issue。

posted @ 2026-06-10 14:43  codinglife66  阅读(4)  评论(0)    收藏  举报