被爬网站用fingerprintjs来对selenium进行反爬,怎么破?

简介: 闲暇时看到一个问题关于如何应对FingerprintJS的唯一标记技术。FingerprintJS通过收集浏览器特性如Canvas、音频、字体及插件信息生成唯一标识符,用于识别和追踪用户。常见应对策略如使用`stealth.min.js`脚本或虚拟指纹插件有局限性。高级解决方案包括:- **浏览器特征随机化**:如Canvas和音频指纹随机化,动态替换插件和字体。- **真实用户流量模拟**:模拟自然的鼠标移动与点击、键盘输入节奏。- **服务端策略**:使用高质量代理IP服务,如青果网络提供的代理IP,结合IP地址轮换、会话管理和合理的切换频率设置。

闲暇逛乎的时候,看到了这个问题:

Fingerprintjs实际上就是专门用来识别和追踪浏览器的,要应对起来,确实并非易事。那么,我们要如何应对FingerprintJS的唯一标记技术呢?

接下来,我们将一起来探讨探讨。

FingerprintJS技术概述

首先,我们来了一下,FingerprintJS技术是什么?

FingerprintJS是一种浏览器指纹识别技术,通过收集用户浏览器的各种特征数据,如Canvas指纹、音频指纹、字体指纹、插件指纹等,进而生成一个唯一的标识符,用以识别和追踪用户。在现代互联网应用中,这种识别技术被广泛运用于防止网络攻击、改善用户体验等场景。

主要特征收集方式

  • Canvas Fingerprinting:通过让浏览器绘制特定的图形,然后提取图形的像素数据。每个浏览器由于软硬件环境的差异所绘制的图形略有不同,这些差异可用于生成唯一指纹。
  • Audio Fingerprinting:利用音频处理技术,生成一个短暂的音频信号,并通过提取该信号的特征数据来生成唯一标识。
  • Browser Plugins and Fonts:浏览器安装的插件和系统可用的字体组合情况,以及一些高级属性(如User-Agent),可以为指纹生成提供丰富的信息。

常见的应对策略与其不足

就如提问者自己说的,使用了很多方法教程,包括日常大家提到的解决方案,都没办法有效。

我们要承认,现有的部分应对策略如使用stealth.min.js和浏览器扩展虚拟指纹插件,可以在一定程度上对抗FingerprintJS,但它们都有各自的局限性,例如:

  • stealth.min.js:该脚本集合了多种技术,可以隐藏部分指纹特征,比如移除自动化检测标志。但由于FingerprintJS技术不断更新,此方法无法全面覆盖所有指纹检测手段。但是它可能无法处理新型的Canvas指纹或音频指纹技术。
  • 虚拟指纹插件:部分浏览器扩展插件可以生成虚拟指纹,让浏览器看似是其他设备。然而,由于浏览器更新、插件失效等原因,这种方法的维持成本高且不可靠。

那,难道就没有解决办法了吗?老话说得好,办法总比困难多。

高级解决方案

我们可以试试采用多层次的技术解决方案。

浏览器特征随机化

通过动态随机化浏览器的特征数据,使得每次访问的指纹信息都不同。这种方法需要对特征数据进行细致处理,以增加对抗FingerprintJS的成功率。

  1. Canvas指纹随机化:利用JavaScript在Canvas绘制过程中对生成数据进行局部微调,使得每次生成的Canvas图形略有不同,从而改变指纹。
  2. 音频指纹随机化:通过对音频处理添加少量噪声或其他变化,使其生成特征值时每次略有不同。
  3. 插件和字体的动态替换:在Puppeteer等工具中动态加载和卸载不同的插件和字体,让浏览器的插件和字体组合情况随机化。

使用真实用户流量模拟

结合真实用户行为数据,通过自动化浏览器模拟真实用户的操作,减少会被FingerprintJS检测到的一致性特征。

  • 鼠标移动与点击行为:模仿不规则的鼠标移动和点击行为,使得这一部分特征更接近真实用户操作。可以使用工具生成这些复杂的鼠标轨迹。
  • 键盘输入节奏:模拟常见的打字节奏,包括按键间的时间间隔、不规则输入行为,以避免在尤为敏感的表单填写过程中被检测。

这部分,简单来说就是:你如果作为一个普通人,正常怎么浏览这个网站,你就代入进去,也同样操作。

服务端应对策略

在代理服务器端,使用高质量代理IP服务,结合随机化的浏览器特征,难以通过IP或指纹一致性进行拦截。

  • IP地址轮换:使用稳定且分布广泛的高质量代理IP,通过频繁切换IP地址来减少因IP地址一致性带来的风控问题。这边我会建议采用青果网络提供的代理IP服务,他们家的代理IP节点分布广,遍布全球,日更新纯净IP的流水在600万左右,可用率高,带宽也够我们日常使用。
  • 会话管理:在多个会话间保持相对独立的特征组合,并合理分配每个会话的请求量,降低被识别的概率。
  • 切换频率设置:设置合理的IP切换频率,以达到既避免频繁变动,又能对抗FingerprintJS的方法。

结论

总的来说,FingerprintJS技术通过多参数、多维度的综合分析,为网站防护提供了强大的工具。要绕过这种技术,需要灵活应用浏览器特征随机化、真实用户流量模拟,以及服务端的分布式代理策略并结合代理服务提供商的专业支持。

相关文章
|
6月前
|
数据采集 Web App开发 搜索推荐
突破目标网站的反爬虫机制:Selenium策略分析
突破目标网站的反爬虫机制:Selenium策略分析
|
3月前
|
数据采集 Web App开发 存储
基于Python的51job(前程无忧)招聘网站数据采集,通过selenium绕过网站反爬,可以采集全国各地数十万条招聘信息
本文介绍了一个使用Python和Selenium库实现的51job(前程无忧)招聘网站数据采集工具,该工具能够绕过网站的反爬机制,自动化登录、搜索并采集全国各地的招聘信息,将数据保存至CSV文件中。
134 0
|
6月前
|
数据采集 Web App开发 JavaScript
使用Selenium爬取目标网站被识别的解决之法
使用Selenium爬取目标网站被识别的解决之法
|
6月前
|
安全 测试技术 API
Selenium框架添加CONNECT以抓取https网站
Selenium框架添加CONNECT以抓取https网站
|
数据采集 前端开发 安全
如何避免Selenium爬虫被网站识破
如何避免Selenium爬虫被网站识破
|
数据采集 Web App开发 安全
别去送死了。Selenium 与 Puppeteer 能被网站探测的几十个特征
别去送死了。Selenium 与 Puppeteer 能被网站探测的几十个特征
314 0
|
数据采集 JavaScript 前端开发
Selenium+代理爬取需要模拟用户交互的网站
Selenium+代理爬取需要模拟用户交互的网站
|
数据采集 数据可视化 JavaScript
使用 Python/Selenium 抓取网站的 Power BI dashboard
Power BI可以帮助用户从不同来源的数据中提取信息,生成交互式报表和可视化仪表盘。Power BI dashboard是Power BI的一个重要组成部分,它可以将来自多个数据源的数据整合到一个面板上,为用户提供全面的数据洞察。通过Power BI dashboard,用户可以方便地查看关键指标的实时数据、分析趋势变化和发现隐藏在数据中的模式和趋势。重点是Power BI dashboard是使用 JavaScript 呈现的,因此在尝试抓取任何数据之前,需要确保页面已完成加载。可以使用 WebDriverWait 类等待某个元素出现在页面上,这是页面加载完成的良好指示。
256 0
|
Web App开发 前端开发 测试技术
从零开始Web自动化(三):通过selenium,9行代码实现打字网站的自动打字
从零开始Web自动化(三):通过selenium,9行代码实现打字网站的自动打字
282 0
从零开始Web自动化(三):通过selenium,9行代码实现打字网站的自动打字
|
前端开发 JavaScript 测试技术
大型情感剧集Selenium:7_使用selenium,让整个网站都认识我!
通过这篇文章我想告诉你,任何人学selenium,都不是白费的!
153 0