当前位置: 首页 > news >正文

puppeteer注入浏览器指纹过CDP

一、背景

通过puppeteer爬取目标网站时,经常会被对方网站检测到,比如原生puppeteerCDP特征非常明显,另外指纹如果一直不变,也会引发风控

二、实现

通过以下几行代码即可轻松过大部分检测点,并且能够切换指纹,我的电脑是windows系统,显卡是AMD 7800XT,先放效果图:

2.1 检测网站

https://bot.sannysoft.com/

在这里插入图片描述
https://www.browserscan.net/
在这里插入图片描述
在这里插入图片描述
Webdriver、CDP等机器人常规检测:
在这里插入图片描述

2.2 代码

使用的是开源工具,代码非常少,首先是依赖安装
其中fingerprint-generator负责生成指纹,fingerprint-injector负责注入指纹,rebrowser-puppeteer是puppeteer的一个补丁库,主要用于绕过CDP检测

npm install fingerprint-generator fingerprint-injector rebrowser-puppeteer

示例js:

const { FingerprintGenerator } = require('fingerprint-generator');
const { FingerprintInjector } = require('fingerprint-injector');
const puppeteer = require('rebrowser-puppeteer');(async () => {const generator = new FingerprintGenerator(// {//     browsers: [//         {//             name: 'chrome',//             minVersion: 131,//             minVersion: 131//         }//     ]// });const fingerprint = generator.getFingerprint();const browser = await puppeteer.launch({// executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',headless: false,args: ['--disable-blink-features=AutomationControlled','--disable-web-security'],ignoreDefaultArgs: ['--enable-automation']});const page = await browser.newPage();const injector = new FingerprintInjector();await injector.attachFingerprintToPuppeteer(page, fingerprint);// https://www.browserscan.netawait page.goto('https://www.browserscan.net/', {waitUntil: 'networkidle0',timeout: 600000});
})();
http://www.dtcms.com/a/157880.html

相关文章:

  • PyTabKit:比sklearn更强大的表格数据机器学习框架
  • 2025.04.26-淘天春招笔试题-第一题
  • C#进阶学习(十四)反射的概念以及关键类Type
  • C#中的弱引用使用
  • 深入详解人工智能数学基础——微积分中拉格朗日乘数法在GAN训练中的应用
  • (23)VTK C++开发示例 --- 读取所有的PolyData类型示例
  • Apache NetBeans 25 发布
  • dl学习笔记(13):从强化学习到PPO
  • MySQL之视图
  • 基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述
  • 大数据模型现状分析
  • 小程序Npm package entry file not found?
  • 定制一款国密浏览器(12):分析SM2签名算法的实现
  • HTTP 协议深度解析:从基础到实战的完整指南
  • Qt动态库信号崩溃问题解决方案
  • 【实战】基于 Hugging Face 的 LLM 高效微调全解析
  • ASAM MDF 文件格式简介:测量数据的标准化存储
  • Goland终端PowerShell命令失效
  • 量子计算与GPU的异构加速:基于CUDA Quantum的混合编程实践
  • Android7 Input(五)InputDispatcher
  • Missashe考研日记-day27
  • 碰一碰发视频源码搭建全解析,支持OEM
  • 分类数据处理全解析:从独热编码到高维特征优化
  • 如何解决docker运行Java程序导出Excel中文报错的问题?
  • [官方IP] Shift RAM
  • 五年经验Java开发如何破局创业
  • ShaderToy学习笔记 01.基础知识
  • 【WSL】wsl2出现Exec format error的解决办法
  • tensor 内部存储结构
  • FastAPI 零基础入门指南:10 分钟搭建高性能 API