如何避免Puppeteer被前端JS检测
工具和资料
- QQ群 - Javascript高级爬虫https://jq.qq.com/?_wv=1027&k=5Bcu3YU -作者自建群,欢迎加入!
- 中国商标网加密接口https://github.com/rockswang/wsjs.saic.mmewmd -仅做演示
- awesome-jave-crawlerhttps://github.com/rockswang/awesome-java-crawler - 作者收集的爬虫相关工具和资料
前言
这两天开始看puppeteer,发现居然也能被某数的前端js检测出来!?
github的issue区找了找,原来puppeteer启动的chrome里面,是有navigator.webdriver属性的,搞什么搞么,老外真是做那啥还要立牌坊......
方案1
issue区里看到的解决方案:
await this.page.evaluateOnNewDocument(() => {Object.defineProperty(navigator, 'webdriver', {get: () => undefined,});
}
但是说实话这个还是有点问题的,因为用"webdriver" in navigator还是能检测出来。
方案2
想找找到底哪个环节把"webdriver"属性加上的,但是文本搜索发现puppeteer源码中并没有......
后来chrome中用chrome:version看了一下命令行启动参数,结果发现了这个:"--enable-automation" ......
一看就有问题,为了确认特意搜了一下这个命令行参数的说明:
--enable-automation: Inform users that their browser is being controlled by an automated test.
确认了可以干掉了,启动chrome时加个忽略默认参数即可:
const browser = await puppeteer.launch({ignoreDefaultArgs: ["--enable-automation"]});
如何避免Puppeteer被前端JS检测相关推荐
- 【文件上传漏洞-03】前端JS检测与绕过实例—以upload-labs-1为例
目录 1 前端JS检测与绕过 2 前端JS检测与绕过实例 2.1 实验目的 2.2 操作环境 2.3 前期准备 2.4 具体过程 2.4.1 文件上传前期盲测 2.4.2 方法一:删除JS直接上传 2 ...
- JS检测浏览器开发者工具是否打开
在有些情况下 我们需要检测用户是否打开了浏览器的开发者工具 右键检查出来的就是开发者工具 比如前端爬虫检测 或者是避免用户非法篡改信息 本篇文章主要讲述几种前端js检测开发者工具是否打开的方法 1.重 ...
- ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...
JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...
- html5中检测网络状态的方法,前端js监听浏览器网络变化
首先,为什么要让前端判断用户的网络状态呢--为了更好的用户体验. 其次,前端能否判断网络状态?有哪些方法? 1,可以做到渐进式判断,不能做到绝对准确. 2,使用的是navigator.onLine或n ...
- 【文件上传绕过】——前端检测_前端js验证漏洞
文章目录 一.实验目的: 二.工具: 三.实验环境: 四.实验目的: 五.漏洞说明: 1. 漏洞原理: 2. `js前端验证`过程代码: 六.实验过程: 1. 判断是否存在前端`js绕过漏洞`: 1. ...
- 前端 ---JS中的面向对象
JS中的面向对象 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 JS ...
- java集合转js数值_前端js调用接口转换Map数组数据
返回Map数据 后端接口返回数据格式 { "code": 1, "msg": "操作成功!", "count": 0, ...
- 前端js html转换成pdf可下载打印;前端js可批量生成条形码;前端js可批量生成二维码,生成letter标签
注意:本文调试的是letter纸尺寸 前端js html转换成pdf可下载打印 html2canvas + jspdf 前端js生成条形码 Options · lindell/JsBarcode ...
- 华为云 内容审核API调用 前端 js uni-app
文章目录 前言 一.华为云的内容审核api的调用需要哪些东西? 二.使用步骤 1.先注册一个华为云的账号 2.申请内容审核服务 3.[华为云内容审核API的官方文档](https://support. ...
最新文章
- 3.QT事件处理,消息过滤器
- 写在Github被微软收购之际 - Github的那些另类用法
- FTP多用户权限 linux环境 一站式解决方案(基础篇)
- android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点
- Mac上最佳的SVN管理工具:Cornerstone
- 计算机专业动漫设计毕业论文,计算机动漫设计与制作专业毕业论文26850.doc
- 加减法计算器-java
- java 阻塞队列介绍
- 三种方法打印 main函数的返回地址的值(old EIP)(用途,你懂得!)
- OpenCV stereo matching 代码
- c mysql学生管理系统_C++ 简单的学生信息管理系统
- 【常规版本】SIS-OAS 1.53.0(2019/5/23发布)版本 --需求评审 ---模板
- 计算机信息单位中1GB等于,1gb等于多少mb 1gb换算多少mb
- (Matlab)复现《改进NSGA_II算法求解考虑运输约束的柔性作业车间节能调度问题》中的交叉操作
- 国外android大神博客,Android手机浏览器(国外篇)横向对比评测
- 脂肪肝青睐“三围”人士 不吃早餐容易诱发
- 群友(淡泊、明志)总结java面试题
- 在计算机网络术语中wan的中文意思是什么,在计算机网络术语中,WAN的中文含义是...
- 非标产品和标准产品的区别(关于3C)
- 智能跳过节假日算法java_java计算两个日期之间的天数,排除节假日和周末
热门文章
- 01.analyzer简介及char_filter组件
- 【简便解法】1079 延迟的回文数 (20分)_31行代码AC
- docker删除none镜像_Docker容器相关命令
- html开启页面离线缓存,HTML5 离线缓存
- decimal 类型数据怎么引用_Java基本数据类型和引用类型
- mysql计算多少天后的日期_数据库 - mysql 计算某个时间,多少天后,多少个月后时间戳...
- python中lambda函数对时间排序_python – 使用lambda函数排序()
- C语言面试题分享(2)
- UDP内网和外网连接通信的问题
- rust布料怎么弄_布料“难弄”,你需要从这六方面解决!