bing图片批量下载skill

👤 16miku 📦 v2.0.1 ⭐ 4.4 ⬇️ 1K 下载
📊 数据分析 免费

📖 技能介绍


name: image-downloader description: 当用户需要按关键词批量下载图片、从 Bing 或多个图片来源收集候选、保存图片到本地目录、避免重复下载,或希望复用当前仓库里的现成图片下载流程时使用。遇到类似“帮我按关键词下载 10 张图片”“批量抓取 Bing 图片并保存到本地”“从多个来源收集图片候选再下载”“需要下载摘要和保存目录”这类请求时,应主动使用这个 skill。


多来源关键词图片批量下载

这个 skill 用于复用当前目录中的 scripts/bing_image_downloader.py 脚本,让其他 agent 能稳定完成“按关键词从多个来源收集候选并下载图片到本地”的任务。

项目链接

  • GitHub 仓库:https://github.com/16Miku/image-downloader-skill
  • ClawHub 页面:https://clawhub.ai/16miku/image-downloader

何时使用

当用户明确提出以下类型需求时,优先使用本 skill: - 按关键词批量下载公开图片到本地 - 想从 Bing 或当前脚本支持的多个来源收集图片候选 - 想保存 10、50、100 张关键词图片到本地目录 - 想通过增加页数或扩大候选池来提高最终成功数量 - 想复用现成脚本执行下载,并拿到保存目录、成功数量和运行摘要 - 想避免重复下载之前已经保存过的内容

如果用户要的是: - 其他搜索引擎或站点的专用下载器开发 - 图像识别、分类、审核、打标 - 非关键词方式(例如固定页面 URL 批量抓取)

则这个 skill 不是最佳选择。

想要更强大的技能插件,就来小葱技能站7w4.net看看吧。

依赖文件

  • 主脚本:scripts/bing_image_downloader.py
  • 测试文件:tests/test_bing_image_downloader.py
  • 集成测试:tests/test_integration_multisource.py

工作流程

按下面顺序执行:

  1. 读取用户需求中的关键词、目标数量、页数。
  2. 如果用户没给页数,按下面经验值选择:
  3. 10 张:--pages 3
  4. 50 张:--pages 5
  5. 100 张:--pages 10
  6. 运行脚本:
  7. 如果当前环境有 uv,使用 uv run --with requests python 运行。
  8. 如果没有 uv(例如服务器、容器、OpenClaw Agent),直接使用 python3 运行,需确保 requests 已安装。
  9. 检查输出中:
  10. 成功下载数量
  11. 候选总数与去重后数量
  12. 来源统计
  13. 失败原因(常见为 403、SSL、超时)
  14. 向用户汇报:
  15. 实际保存目录
  16. 成功数量
  17. 是否达到目标数量
  18. 当前来源统计
  19. 如未达标,说明通常是第三方源站拒绝访问、超时或链接失效,而非脚本崩溃

推荐命令模板

有 uv 环境

下载 10 张

uv run --with requests python "scripts/bing_image_downloader.py" "cat" --limit 10 --pages 3

下载 50 张

uv run --with requests python "scripts/bing_image_downloader.py" "cat" --limit 50 --pages 5

下载 100 张

uv run --with requests python "scripts/bing_image_downloader.py" "cat" --limit 100 --pages 10

无 uv 环境(服务器 / OpenClaw Agent)

python3 "scripts/bing_image_downloader.py" "cat" --limit 10 --pages 3

参数映射规则

  • 用户说“下载 10 张” → --limit 10
  • 用户说“下载 50 张” → --limit 50
  • 用户说“下载 100 张” → --limit 100
  • 用户没说页数时,按上面的推荐默认值设置 --pages
  • 用户明确给出页数时,尊重用户输入

输出说明

脚本会把结果保存到:

downloads/<关键词>/

例如关键词 cat 会保存到:

downloads/cat/

文件名按顺序编号,例如: - 001.jpg - 002.jpg - 003.png

此外,脚本会记录下载元数据与历史索引,用于后续运行时跳过已下载过的候选内容。

常见问题解释

为什么会出现下载失败?

因为搜索结果中的原图通常来自第三方网站,不是都由当前来源自己托管。第三方站点可能拒绝脚本访问,常见错误: - 403 Forbidden - SSL 证书错误 - 连接超时 - 404 Not Found

为什么加大 --pages 后下载数量会提高?

因为脚本会抓更多结果页,收集更大的候选链接池。即使其中一部分链接失效,仍然可以用后面的候选补位。

给用户的汇报模板

完成后可按下面结构回复用户:

已执行关键词图片批量下载。
- 关键词:<关键词>
- 目标数量:<limit>
- 抓取页数:<pages>
- 候选总数:<候选数量>
- 去重后数量:<去重后数量>
- 实际成功下载:<成功数量>
- 来源统计:<来源统计>
- 保存目录:downloads/<关键词>/

如果存在失败链接,通常是第三方图片源拒绝访问、超时或链接失效,不影响脚本继续补充后续候选。

注意事项

  • 这是一个“按关键词下载公开图片”的现成流程复用 skill,当前来源至少包含 Bing,不要把它表述成通用全网图片下载器。
  • 优先复用现有脚本,不要重复手写新下载器,除非用户明确要求修改或升级脚本。
  • 当用户要求“提高下载数量”时,优先建议增加 --pages 或扩大候选池,而不是先改成并发下载。
  • 当用户提到”不想重复下载”时,应明确说明当前流程支持基于历史索引跳过重复候选。

OpenClaw Agent 定时任务

本 skill 已在 OpenClaw Agent 上完成实际验证,支持通过 cron 定时任务自动下载图片并发送到飞书。

定时任务执行流程

  1. 设置 PATHbash 严格模式
  2. 检查 Python 和 requests 环境
  3. 执行图片下载脚本
  4. 检查下载目录中的图片文件
  5. 逐张调用 openclaw message send 发送到飞书
  6. 记录结果到日志

发送到飞书的正确命令

openclaw message send \
  --channel feishu \
  --target “<飞书接收人 open_id>” \
  --media “/path/to/downloads/关键词/001.jpg” \
  --json

已验证的注意事项

  • demo 来源的 NameResolutionError 报错是正常现象,可忽略
  • “实际成功下载 0”可能是历史去重生效,不代表任务失败
  • cron 环境中需要显式设置 PATH,避免找不到 python3openclaw
  • 发送失败时优先检查 CLI 命令格式,不要先入为主认为是权限问题

详细部署步骤和脚本模板见 README.md 的”OpenClaw Agent 部署与定时任务”章节。

🤖 AI 评测

这个 Skill 质量不错,文档写得很详细清楚,普通人也能快速上手用它批量下载图片。它能同时从多个来源抓取候选图片、自动去重、跳过之前下过的内容,还能输出运行统计报告。主要缺点是图片来源有限,下载失败比较常见(通常是第三方网站拒绝访问导致),不适合追求高成功率的场景。简单用用够用了,但不要期望能稳定下载满所有目标数量。

📊 多维度评分

适应性4.7
规范性4.4
有效性4.3
可靠性4.2
可信度4.8

📁 包含文件 (22 个)

📄 CLAUDE.md 3.8 KB
📄 README.md 9.7 KB
📄 SKILL.md 6.3 KB
📄 _meta.json 135 B
📄 docs/superpowers/plans/2026-04-10-multi-source-image-downloader.md 51.2 KB
📄 docs/superpowers/plans/2026-04-10-mvp-completion-alignment.md 12.3 KB
📄 docs/superpowers/specs/2026-04-10-multi-source-image-downloader-design.md 17.3 KB
📄 docs/superpowers/specs/2026-04-10-mvp-completion-alignment-design.md 5.2 KB
📄 evals/evals.json 2.7 KB
📄 image_downloader/__init__.py 0 B
📄 image_downloader/models.py 450 B
📄 image_downloader/reporting.py 663 B
📄 image_downloader/sources/__init__.py 0 B
📄 image_downloader/sources/base.py 302 B
📄 image_downloader/sources/bing.py 2.6 KB
📄 image_downloader/sources/demo.py 1 KB
📄 image_downloader/storage.py 2.8 KB
📄 scripts/bing_image_downloader.py 5.8 KB
📄 tests/test_bing_image_downloader.py 12.7 KB
📄 tests/test_integration_multisource.py 4.2 KB
📄 tests/test_models_and_sources.py 4.9 KB
📄 tests/test_storage.py 2.2 KB