自定义指纹
简介
浏览器指纹利用您的浏览器和设备配置信息创建近乎唯一的“数字指纹”,即使没有 Cookie 也可用于跟踪您的在线活动。好消息是,在抓取浏览器中指纹配置是可选的。我们提供浏览器指纹的深度自定义功能,例如浏览器用户代理、时区、语言和屏幕分辨率等核心参数。可以通过自定义启动参数扩展功能。这适用于多帐户管理、数据收集和隐私保护等场景,使用scrapeless的自建Chromium浏览器完全避免检测。默认情况下,使用我们的Scraping Browser服务将为每个会话生成随机指纹。
核心功能和限制
用户代理控制
- 功能: 支持自定义HTTP请求头中的User-Agent字符串,允许定义浏览器引擎版本和操作系统类型。
- 限制: 目前无法修改渲染引擎细节(例如WebGL渲染功能)。
屏幕分辨率映射
- 功能: 支持自定义
screen.width
和screen.height
的返回值,以模拟基本的设备屏幕尺寸(必须符合物理宽高比)。 - 限制: 目前无法伪造设备像素比 (DPR) 或视网膜屏幕特性。
平台属性锁定
- 功能: 允许为
navigator.platform
设置固定返回值(仅支持Windows/macOS/Linux),这会影响浏览器功能检测逻辑。 - 限制: 目前无法修改操作系统版本号或硬件架构信息。
其他限制:
此功能仅支持对浏览器原生公开的标准化参数进行有限调整,不涉及硬件级指纹或高级行为掩盖。
应用场景
- 基本的多帐户隔离: 通过区分User-Agent和屏幕分辨率避免简单的帐户关联检测。
- 轻量级数据收集: 模拟主流浏览器环境(Windows + Chrome)绕过目标网站的基本反抓取策略(例如User-Agent黑名单)。
- 兼容性测试: 验证网站在不同操作系统(Windows/macOS)和屏幕尺寸下的基本渲染逻辑。
操作指南
指纹参数说明
参数名称 | 类型 | 描述 |
---|---|---|
userAgent | string | 定义浏览器HTTP请求头中的User-Agent字符串,包含浏览器引擎、版本号和操作系统等关键识别信息。网站使用此值识别客户端环境,影响内容适配和功能。默认值:跟随浏览器 |
platform | enum | 指定JavaScript navigator.platform 属性的返回值,指示运行环境的操作系统类型。可选值为”Windows”,“macOS”或”Linux”。此参数将用于功能检测和系统相关功能的启用判断。默认值:Windows |
screen | object | 定义浏览器报告的显示设备物理特性参数,直接映射到JavaScript window.screen 对象。 |
screen.width | number | 物理屏幕宽度(像素),映射到screen.width 属性,影响媒体查询和响应式布局。默认值:跟随随机指纹,最小值640。 |
screen.height | number | 物理屏幕高度(像素),与宽度一起决定设备分辨率特性,映射到screen.height 属性。默认值:跟随随机指纹,最小值480。 |
localization | object | 控制浏览器的本地化环境配置,包括语言、地区和时区参数,影响显示格式和内容本地化行为。 |
localization.timezone | string | 符合IANA时区数据库格式的时区标识符(例如:“Asia/Shanghai”),控制JavaScript日期对象和Intl.DateTimeFormat 输出的默认时区行为,是时区指纹的关键组成部分。默认值:America/New_York |
localization.languages | [string] | 浏览器的支持语言优先级列表,映射到navigator.languages 属性和HTTP Accept-Language 请求头,决定网站的内容语言选择逻辑。默认值:“en”,“en-US” |
userAgent
类型: string
描述: 定义浏览器HTTP请求头中的User-Agent字符串,包含浏览器引擎、版本号和操作系统等关键识别信息。网站使用此值识别客户端环境,影响内容适配和功能。
示例值:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
platform
类型: enum
描述: 指定JavaScript navigator.platform
属性的返回值,指示运行环境的操作系统类型。此参数将用于功能检测和系统相关功能的启用判断。
示例可接受值:
值 | 描述 |
---|---|
”Windows” | Windows操作系统,默认值 |
”macOS” | macOS操作系统 |
”Linux” | Linux操作系统 |
screen
类型: object
描述: 定义浏览器报告的显示设备物理特性参数,直接映射到JavaScript window.screen
对象。
screen.width: 物理屏幕宽度(像素),影响媒体查询和响应式布局,最小值640。 screen.height: 物理屏幕高度(像素),与宽度一起决定设备分辨率特性,最小值480。
示例值:
width | height |
---|---|
1920 | 1080 |
1366 | 768 |
1280 | 720 |
768 | 1280 |
localization
类型: object
描述: 控制浏览器的本地化环境配置,包括语言、地区和时区参数,影响显示格式和内容本地化行为。
localization.timezone: 符合IANA时区数据库格式的时区标识符,控制JavaScript日期对象和Intl.DateTimeFormat
输出的默认时区行为,是时区指纹的关键组成部分。
示例值:
America/New_York
Asia/Shanghai
Europe/London
localization.languages: 浏览器的支持语言优先级列表,映射到navigator.languages
属性和HTTP Accept-Language
请求头,决定网站的内容语言选择逻辑。
示例值:
["fr-FR", "en-US", "zh-CN"]
["en-US", "es-ES", "de-DE"]
参考: tz 数据库时区列表
示例代码
const puppeteer =require('puppeteer-core');
// custom browser fingerprint
const fingerprint = {
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36',
platform: 'Windows',
screen: {
width: 1280, height: 1024
},
localization: {
languages: ['zh-HK', 'en-US', 'en'], timezone: 'Asia/Hong_Kong',
}
}
const query = new URLSearchParams({
token: 'APIKey',// required
session_ttl: 180,
proxy_country: 'ANY',
fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
});
const connectionURL = `wss://browser.scrapeless.com/browser?${query.toString()}`;
(async () => {
const browser = await puppeteer.connect({browserWSEndpoint: connectionURL});
const page = await browser.newPage();
await page.goto('https://www.scrapeless.com');
const info = await page.evaluate(() => {
return {
screen: {
width:screen.width,
height:screen.height,
},
userAgent:navigator.userAgent,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
languages:navigator.languages
};
});
console.log(info);
await browser.close();
})();
伦理声明
我们提倡负责任的指纹定制:
- 仅限于合法授权的场景(例如企业数据合规收集、内部风险控制测试)。
- 禁止使用伪造指纹从事网络欺诈或侵犯用户隐私的行为。