imgbrd-grabber
跨平台图库下载器,支持批量抓取+智能文件命名,一键整理数万张图片
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
跨平台图库下载器,支持批量抓取+智能文件命名,一键整理数万张图片
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有过这样的经历:在网上看到一张喜欢的图,想存下来整理,却发现图片散落在不同网站、链接早已失效?尤其对于动漫、二次元文化的爱好者来说,素材散落在 Danbooru、Gelbooru、Pixiv 等数十个图库网站,手动一张张保存费时费力。Grabber 正是为解决这一痛点而生——它是一个专为「图库网站」(Booru 类站点)设计的开源下载器,支持一键批量抓取、灵活命名、自动分类。
![]()
图1:Grabber 官方图标
Grabber 由开发者 Jack Vasti(GitHub ID: Bionus)创建并维护,托管于 GitHub 平台,是目前 GitHub 上最受欢迎的图片抓取工具之一,累积获得超过 3100 Star,在同类型工具中遥遥领先。项目采用 Apache-2.0 开源许可证,支持 Windows、macOS、Linux、Android 四大平台,并内置英语、法语、俄语、简体中文、西班牙语五种语言界面。
这个项目的起源可以追溯到 2010 年代初期——彼时 anime/漫画文化的在线社区蓬勃发展,Danbooru、Gelbooru 等图库网站成为爱好者存储和检索图片素材的核心平台。然而这些网站本身没有提供高效的批量下载方案,用户只能逐张保存或者依赖浏览器插件。Jack Vasti 决定自己动手,开发了 Grabber,最初只是一个简单的脚本,后来逐步演变为功能完备的跨平台桌面应用,至今仍在活跃维护(GitHub Actions 持续集成、nightly 自动构建)。
Grabber 的功能设计非常围绕用户的实际工作流展开,不追求大而全,而是把"图片下载"这一个场景做深做透。
Grabber 支持同时查询多个图库站点(Danbooru、Gelbooru、E-Hentai、Pixiv、yande.re、e621、Rule34 等数十个),并在一个标签页内展示所有结果。用户只需输入关键词,程序自动去多个平台抓取、去重,再统一呈现。这意味着爱好者无需在多个网站之间来回跳转,一个界面搞定所有来源。
搜索功能还包括:标签自动补全(输入一半自动提示)、标签黑名单(屏蔽不想看到的内容)、代理支持(解决部分站点的访问限制)、结果后过滤(在搜索结果基础之上进一步筛选)等。

图2:Grabber 搜索界面,支持多来源聚合
Grabber 支持一次下载数千张图片,支持按标签、日期、评分等多种维度筛选下载。下载过程可以全程自动化——设置好"白名单标签"之后,只要搜索结果中出现匹配的图片,就自动开始下载,无需手动干预。
这是 Grabber 区别于其他下载工具的核心竞争力。项目提供了极其强大的文件名模板系统,用户可以用类似 %artist%/%copyright%/%character%/%md5%.%ext% 这样的占位符格式,让下载的图片自动按照「画师→作品系列→角色名→哈希值」的层级目录结构保存。
更强大的是,这套命名系统还支持 JavaScript 脚本自定义——用户可以写一段脚本来实现更复杂的逻辑,比如"当图片同时包含 A 标签和 B 标签时,用特殊的目录结构"。这个设计让 Grabber 不仅仅是一个下载工具,更是一套个人素材管理系统的前端。

图3:文件名模板配置,支持变量和 JS 脚本
Grabber 还支持将下载记录写入本地数据库(SQLite),并能与 Szurubooru、MyImouto、Gelbooru 等本地 Booru 系统联动,自动推送元数据。这意味着用户不仅下载了图片,还同步建立了一个可检索的个人图库。
从代码层面看,Grabber 采用了 C++ + Qt 技术栈开发,这是一个成熟且被广泛验证的跨平台桌面应用框架组合——Qt 提供了跨平台的 GUI 组件、网络请求、XML/JSON 解析等基础设施,C++ 则保证了程序的运行性能和内存效率。
项目的源码组织清晰:
| 目录 | 说明 |
|---|---|
src/gui | Qt GUI 前端,QML 界面 |
src/cli | 命令行接口实现 |
src/sites | 各图库站点的适配器(解析规则) |
src/lib | 核心库(网络、存储、命名系统) |
src/tests | 单元测试 |
docs/ | 完整文档(MkDocs 构建) |
作者还使用了 E2E 测试(src/e2e)、CodeCov 覆盖率统计和 Codacy 代码质量审查,质量意识相当高。项目使用 CMake 作为构建系统。
虽然 Grabber 本身是一个传统桌面应用,不涉及模型训练,但其标签自动补全功能借鉴了"推荐系统"思路——根据已输入标签预测下一步。这是一种基于规则的启发式推荐,在用户体验层面达到了类似 AI 辅助的效果。
项目在 GitHub Releases 页面提供了 Windows (.exe)、macOS (.dmg)、Linux (AppImage/.deb)、Android (APK) 的预编译包,下载后直接运行。普通用户无需技术背景,5 分钟内即可开始使用。
项目提供了 build.sh(Linux/macOS)和 CMakeLists.txt 跨平台构建脚本。编译需要 Qt 5 或 Qt 6、CMake 和 C++ 编译器(约 10-30 分钟首次编译)。
⚠️ 注意:项目没有提供 Dockerfile 或 docker-compose.yml,不支持容器化部署。
| 项目 | 要求 |
|---|---|
| 内存 | ≥ 512 MB |
| 磁盘 | ≥ 200 MB |
| GPU | 不需要 |
1. 法律与版权风险:用户需自行承担下载受版权保护图片的法律责任。
2. 无 Docker 支持:想在服务器/无头环境运行的用户,目前只能通过源码编译 Qt CLI 版本。
3. 图库适配需持续维护:各图库网站频繁改版,适配器需持续更新。
4. GUI 依赖:命令行模式体验不如 GUI 完整。
在 AI 生成内容(AIGC)爆发之前,Grabber 就是动漫/游戏美术素材收集的事实标准工具。它的文件名模板系统启发了大量后续工具的设计思路。随着 AI 生图工具(Stable Diffusion、Midjourney)的普及,用户对高质量图片素材的收集整理需求不减反增——Grabber 作为本地素材管理入口的价值反而在上升。
./build.sh 编译,研究 src/sites/ 适配器了解多平台解析原理