浏览器自动化文件下载框架:用 Playwright 处理「页面上没有直链」的批量下载

前言

从网页批量拉文件时,常见卡点不是「不会写爬虫」,而是站点根本不提供稳定的 href:列表是前端渲染的,文件藏在按钮或会话后面,有的还要先翻页、筛选,甚至只能走浏览器的「打印为 PDF」。自己每次从零写 Playwright 脚本,策略选择和登录态处理都会重复踩坑。

下面介绍 SkillHub 上的社区 Skill「浏览器自动化文件下载框架」(坐标 @user_656c2e70/browser-file-downloader,版本 1.0.0)。它把这类需求收成一套可复用的 Agent 工作流:基于 Playwright,内置多种提取路径,并附带诊断与适配模板,适合交给 Cursor、Claude Code 等带 Skills 的客户端在对话里触发。

这是什么

一句话定位: 面向「网页无直接下载链接」场景的浏览器自动化文件下载通用框架 Skill。

维护与来源: 分类为 dev-programming,来源标注为 community,发布者为 user_656c2e70;SkillHub 页面作者显示为禾田吵。当前公开版本为 1.0.0,标签标明 requires_api_key=false,安装与使用不依赖额外 API Key。

解决什么问题: 当目标站通过 HTML/前端展示文件、需要登录会话、需「打印到 PDF」生成文件,或要先翻页/搜索/过滤再批量下载时,由 Agent 按 Skill 内约定选择策略并执行,而不是每次手写一次性脚本。

核心功能

以下能力均来自 SkillHub 官方简介与技能页描述,未展开编造实现细节。

  1. 三种文件提取策略
    - 直接下载: 适用于点击或请求能触发浏览器下载事件的场景。
    - Print 页面 PDF: 面向站点只提供打印预览、需走「打印为 PDF」链路的页面。
    - page.pdf 兜底: 在前两种路径不适用时,用 Playwright 页面级 PDF 能力作为后备。

  2. 网站诊断与通用适配模板
    Skill 提供网站诊断工具与通用适配模板,便于在新站点上先判断页面类型再套策略,而不是盲目写选择器。

  3. 对话触发词
    官方列出的典型触发表述包括:「网页下载文件」「浏览器自动化下载」「网页没有下载链接怎么下载」「帮我从这个网站下载文件」「页面文件无法直接下载」等。在已安装 Skill 的 Agent 里用自然语言描述目标和 URL 即可唤起流程。

  4. 适用场景归纳(官方四类)
    - 文件通过 HTML 渲染展示,无固定下载链接;
    - 需要登录或会话 Cookie 才能访问;
    - 文件需通过「打印到 PDF」方式生成;
    - 需翻页、搜索、过滤后再批量下载。

底层实现基于 Playwright;具体脚本结构、目录与命令以安装后的 SKILL.md 为准。

安装与启用

安装前需本机已有 SkillHub CLI。若未安装,可按官方安装文档检查或安装:

command -v skillhub && skillhub --version

未安装时(完整安装示例,来自 SkillHub 安装文档):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

将 Skill 装到当前 Agent 实际读取的 skills 目录;SkillHub 要求安装时必须用 --dir,否则默认落在 ./skills/ 可能不会被识别:

skillhub install @user_656c2e70/browser-file-downloader --dir <你的 skills 目录>

常用客户端 skills 路径(摘自 SkillHub 安装文档,按你当前环境选用其一):

客户端 skills 目录
Cursor ~/.cursor/skills/
Claude Code ~/.claude/skills/
Codex ~/.codex/skills/ 或项目下 .agents/skills/

也可在对话中让 Agent 按 SkillHub 安装说明 执行:「请根据该文档安装 @user_656c2e70/browser-file-downloader」。

安装完成后,按你所用客户端说明重启或刷新 Skills 列表,使 browser-file-downloader 生效。

典型用法

官方页面未单独给出逐步截图教程;可复现的用法分两层:CLI 安装与对话驱动。

1、安装 Skill(见上一节命令)

2、在 Agent 中描述任务

用官方触发词之一开头,并写清:

  • 目标页面 URL 或站点说明;
  • 是否需要登录(若需要,说明由你提供 Cookie/账号还是人工先登录);
  • 期望文件类型(原始文件还是 PDF);
  • 是否涉及列表翻页、搜索或筛选条件。

示例提示(示意,按真实站点改写):

网页没有下载链接怎么下载:请用这个 Skill 从 https://example.com/docs 列表批量下载文档。
需要登录,我会先在浏览器登录;请先做网站诊断,再选直接下载或 PDF 策略,保存到 ./downloads。

3、让 Agent 遵循 Skill 内流程

经过上面的步骤,Agent 应优先使用 Skill 中的诊断工具判断页面类型,再在三类提取策略间选择,并借助通用适配模板落地到具体站点。Playwright 运行时依赖(如浏览器二进制)若 Skill 文档有要求,按 SKILL.md 执行;本介绍不臆造额外配置项。

适用场景与注意

适合谁

  • 需要在多个「无直链」站点上重复做批量下载的开发者;
  • 已使用 Cursor、Claude Code、Codex 等支持 SkillHub 技能的 Agent,希望把 Playwright 经验固化成可对话调用的流程。

限制与注意

  • 本 Skill 为 社区来源,行为与合规性需结合目标站点的服务条款与 robots 规则自行评估;勿用于未授权抓取或绕过付费墙。
  • 需要登录的站点涉及凭据与 Cookie,应在本地或受控环境中操作,避免把敏感信息写进日志或公开仓库。
  • 「打印/PDF」类策略得到的是渲染结果,版式、分页可能与源站「导出」不一致,适合归档阅读而非可编辑源文件。
  • SkillHub 统计(以抓取资料为准):评分 100000,下载 1449 次;与你本地 Skill 版本是否一致,以安装时 CLI 报告为准。

结尾

「浏览器自动化文件下载框架」把 Playwright 下载、Print PDF 与 page.pdf 兜底收成统一 Skill,并配套诊断与适配模板,针对的是页面上没有稳定直链时的批量下载痛点。若你的 Agent 已配置 SkillHub,可按文档安装 @user_656c2e70/browser-file-downloader 后直接用官方触发词试跑。

  • SkillHub 技能页:https://www.skillhub.cn/skills/user_656c2e70/browser-file-downloader
  • API 坐标页:https://api.skillhub.cn/user_656c2e70/browser-file-downloader
  • 安装说明:https://skillhub.cn/install/skillhub.md
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜