前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >被爬网站用fingerprintjs来对selenium进行反爬,怎么破?

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

原创
作者头像
阿秋数据采集
发布2024-07-31 14:26:37
2350
发布2024-07-31 14:26:37

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FingerprintJS技术概述
    • 主要特征收集方式
    • 常见的应对策略与其不足
    • 高级解决方案
      • 浏览器特征随机化
        • 使用真实用户流量模拟
          • 服务端应对策略
          • 结论
          相关产品与服务
          智能数据分析
          腾讯云智能数据分析 Intellectual Data Analysis 是新一代云原生大数据敏捷分析解决方案。产品具备存算分离、动态扩缩容等特点,并内置事件、转化、留存、行为路径等成熟分析模型,提供高可用、低成本的全场景敏捷分析服务,可同时满足数据分析师、数据开发工程师和业务决策人的关键分析需求,帮助企业大幅降低数据分析成本,支撑业务更高效决策。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档