爬蟲/自動化防封: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
羽毛球分组比赛记分
小程序二维码

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

小夜