爬虫/自动化防封:UA 与分辨率指纹池 Skill

前言

做网页自动化、爬虫或压测时,如果所有请求共用同一个 User-Agent 和固定视口,很容易被风控一眼认出是脚本流量。手工维护 UA 列表既费事,也很难贴近真实浏览器的版本与分辨率分布。下面介绍 SkillHub 上的社区 Skill「爬虫/自动化 防封指纹伪装(UA+分辨率池)」:把按市占加权的 UA 与分辨率做成可调用数据池,供 Agent 或本地脚本随机或按类型取用。

这是什么

坐标:@user_3ff3c268/browser-fingerprint-pool
版本:1.2.1(来源:community,分类:dev-programming)
维护方:SkillHub 发布者 user_3ff3c268(页面标注为 WeituoAI 作者)

该 Skill 面向「需要像真用户一样轮换浏览器身份」的场景:内置 88+ 条桌面端 User-Agent(按 Chrome、Edge、Firefox、Safari、Opera、Linux 等分类),以及 87 个按权重分布的屏幕分辨率;支持随机获取与按浏览器类型获取。标签 requires_api_key=false,不依赖外部 API Key。SkillHub 页面显示评分 100000、下载 5586(统计以 SkillHub 为准)。

技能说明写明:数据为纯本地、不联网;实现形态为「纯数据 + 纯函数」,文档示例基于 Node ESM(fingerprint-pool.mjs),零依赖。UA 与分辨率数据抽取自 caijiqi-kaifa/electron/data/user-agents.ts 与 resolutions.ts(见 SKILL.md 说明)。

核心功能

根据 SKILL.md,已核实能力如下:

  1. User-Agent 池:allUserAgents 为合并后的全部 UA(88+);getRandomUserAgent() 随机返回一条;getUserAgentByType(type) 按类型取 UA,type 为 'chrome' | 'firefox' | 'edge' | 'safari' | 'opera' | 'random'。
  2. 分辨率池:allResolutions 为带权重重复的分辨率字符串数组(87 个);getRandomResolution() 返回 { width, height };getRandomResolutionString() 返回如 '1920x1080';parseResolution(str) 解析分辨率字符串;uniqueResolutions 为去重列表,便于 UI 展示。
  3. Agent 触发:自然语言中可使用「随机 UA」「随机 user-agent」「UA 池」「分辨率池」「指纹池」「浏览器指纹」「随机视口」「随机浏览器配置」等表述,引导模型按技能文档操作。

需要强调的是:技能只提供身份数据,不包含向浏览器上下文注入的逻辑;文档建议与 playwright-stealth 等方案配合,才能把 UA、视口等真正写入自动化环境。

安装与启用

安装 SkillHub CLI

若尚未安装 CLI,可先检查版本:

command -v skillhub && skillhub --version

未安装时,可按 SkillHub 官方安装说明执行完整安装(CLI + 默认 Skill):

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

仅安装 CLI 时:

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

安装本 Skill

安装时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认装到 ./skills/ 可能不会被识别。常用路径示例:

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/

安装命令(与 skillhub search 输出一致):

skillhub install browser-fingerprint-pool --namespace user_3ff3c268 --dir ~/.cursor/skills

也可将下面提示词交给 AI,让其按 SkillHub 安装说明 完成安装:

请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_3ff3c268/browser-fingerprint-pool`。

安装完成后,在对应 Agent 中启用或刷新 skills 配置(各客户端步骤以各自文档为准)。

典型用法

技能文档中的 Node ESM 调用示例如下。路径 ./scripts/fingerprint-pool.mjs 以技能包内布局为准;若你通过 Agent 使用,通常由模型按 SKILL.md 生成或引用等价逻辑。

import { getRandomUserAgent, getUserAgentByType, allUserAgents,
         getRandomResolution, getRandomResolutionString, parseResolution, uniqueResolutions }
  from './scripts/fingerprint-pool.mjs';

getRandomUserAgent();                 // 随机 UA
getUserAgentByType('firefox');        // 指定类型 UA
allUserAgents.length;                 // 88+

getRandomResolution();                // { width, height }
getRandomResolutionString();          // '1920x1080'
parseResolution('1366x768');          // { width:1366, height:768 }
uniqueResolutions;                    // 去重后的分辨率列表(用于 UI 展示)

在对话侧,可直接描述需求,例如:「从 UA 池随机取一个 Chrome 的 user-agent,并给 Playwright 配一个按权重随机的 1920 级分辨率视口。」Agent 在加载本 Skill 后,应按上述 API 与注意事项给出可落地的配置片段。

技能说明还将本能力定位为「拟人化浏览器采集闭环」中的指纹步骤;若流程涉及 Windows 桌面精确点击,文档另提到可配合 @user_3ff3c268/windows-screen-coordinate(屏幕坐标助手),与本技能无强制绑定。

适用场景与注意

适合谁

  • 爬虫工程师、RPA 开发者,需要在脚本或 Agent 生成代码时快速轮换 UA 与视口尺寸。
  • 海外社媒或多账号运营场景下,希望请求头与分辨率分布更接近真实桌面用户(仍以目标站点规则与合规要求为准)。

限制与注意

  • 仅提供数据与函数接口说明,不替代站点 ToS、反爬策略或法律咨询;能否「防封」取决于整体策略(代理、频率、行为拟人等),不能单靠 UA 池保证。
  • 文档示例为桌面端 UA;移动端指纹不在本技能描述范围内。
  • 注入浏览器上下文需自行结合 Playwright、Puppeteer 等与 stealth 类方案;本 Skill 不内置注入逻辑。
  • 下载包以 SkillHub 分发内容为准;若本地包仅含 SKILL.md,应以文档 API 为准,并在实际工程中落实 fingerprint-pool.mjs 或等效实现。

结尾

「爬虫/自动化 防封指纹伪装(UA+分辨率池)」把真实浏览器份额思路下的 UA 与分辨率池封装成 Agent 可识别的 Skill,减少手写常量、统一随机与按类型取值方式。需要安装或查看详情时,可访问 SkillHub 页面:

  • https://www.skillhub.cn/skills/user_3ff3c268/browser-fingerprint-pool
  • https://api.skillhub.cn/user_3ff3c268/browser-fingerprint-pool
羽毛球分组比赛记分
小程序二维码

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

Xiaoye