工具和资料

  • 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检测相关推荐

  1. 【文件上传漏洞-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 ...

  2. JS检测浏览器开发者工具是否打开

    在有些情况下 我们需要检测用户是否打开了浏览器的开发者工具 右键检查出来的就是开发者工具 比如前端爬虫检测 或者是避免用户非法篡改信息 本篇文章主要讲述几种前端js检测开发者工具是否打开的方法 1.重 ...

  3. ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...

    JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...

  4. html5中检测网络状态的方法,前端js监听浏览器网络变化

    首先,为什么要让前端判断用户的网络状态呢--为了更好的用户体验. 其次,前端能否判断网络状态?有哪些方法? 1,可以做到渐进式判断,不能做到绝对准确. 2,使用的是navigator.onLine或n ...

  5. 【文件上传绕过】——前端检测_前端js验证漏洞

    文章目录 一.实验目的: 二.工具: 三.实验环境: 四.实验目的: 五.漏洞说明: 1. 漏洞原理: 2. `js前端验证`过程代码: 六.实验过程: 1. 判断是否存在前端`js绕过漏洞`: 1. ...

  6. 前端 ---JS中的面向对象

    JS中的面向对象 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 JS ...

  7. java集合转js数值_前端js调用接口转换Map数组数据

    返回Map数据 后端接口返回数据格式 { "code": 1, "msg": "操作成功!", "count": 0, ...

  8. 前端js html转换成pdf可下载打印;前端js可批量生成条形码;前端js可批量生成二维码,生成letter标签

    注意:本文调试的是letter纸尺寸 前端js html转换成pdf可下载打印  html2canvas  + jspdf 前端js生成条形码 Options · lindell/JsBarcode ...

  9. 华为云 内容审核API调用 前端 js uni-app

    文章目录 前言 一.华为云的内容审核api的调用需要哪些东西? 二.使用步骤 1.先注册一个华为云的账号 2.申请内容审核服务 3.[华为云内容审核API的官方文档](https://support. ...

最新文章

  1. 3.QT事件处理,消息过滤器
  2. 写在Github被微软收购之际 - Github的那些另类用法
  3. FTP多用户权限 linux环境 一站式解决方案(基础篇)
  4. android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点
  5. Mac上最佳的SVN管理工具:Cornerstone
  6. 计算机专业动漫设计毕业论文,计算机动漫设计与制作专业毕业论文26850.doc
  7. 加减法计算器-java
  8. java 阻塞队列介绍
  9. 三种方法打印 main函数的返回地址的值(old EIP)(用途,你懂得!)
  10. OpenCV stereo matching 代码
  11. c mysql学生管理系统_C++ 简单的学生信息管理系统
  12. 【常规版本】SIS-OAS 1.53.0(2019/5/23发布)版本 --需求评审 ---模板
  13. 计算机信息单位中1GB等于,1gb等于多少mb 1gb换算多少mb
  14. (Matlab)复现《改进NSGA_II算法求解考虑运输约束的柔性作业车间节能调度问题》中的交叉操作
  15. 国外android大神博客,Android手机浏览器(国外篇)横向对比评测
  16. 脂肪肝青睐“三围”人士 不吃早餐容易诱发
  17. 群友(淡泊、明志)总结java面试题
  18. 在计算机网络术语中wan的中文意思是什么,在计算机网络术语中,WAN的中文含义是...
  19. 非标产品和标准产品的区别(关于3C)
  20. 智能跳过节假日算法java_java计算两个日期之间的天数,排除节假日和周末

热门文章

  1. 01.analyzer简介及char_filter组件
  2. 【简便解法】1079 延迟的回文数 (20分)_31行代码AC
  3. docker删除none镜像_Docker容器相关命令
  4. html开启页面离线缓存,HTML5 离线缓存
  5. decimal 类型数据怎么引用_Java基本数据类型和引用类型
  6. mysql计算多少天后的日期_数据库 - mysql 计算某个时间,多少天后,多少个月后时间戳...
  7. python中lambda函数对时间排序_python – 使用lambda函数排序()
  8. C语言面试题分享(2)
  9. UDP内网和外网连接通信的问题
  10. rust布料怎么弄_布料“难弄”,你需要从这六方面解决!