puppeteer 的PDD反爬经历
使用puppeteer 爬取PDD数据时出现要求登录,以前是没有这问题的。
尝试多种方式如果:
- 变更UA
- 变更代理IP
- 变更Chromium版本(当然最终就是该问题的原因,但是因为版本跨度太大没有测试出来)
最后查找浏览器判断是否在自动化工具控制下的方法,结果查询到文章,得知了新版Chrome有navigator.webdriver属性。
如果是在自动化工具控制下,在控制台中输出navigator.webdriver,可以看到true。
如果直接打开浏览器,在控制台出现的则是undefined,注意这里不是navigator.webdriver值为undefined,而是navigator没有webdriver属性。
该属性值不能通过赋值进行覆盖,但我们可以通过Object.defineProperty来覆盖:
Object.defineProperty(navigator,'webdriver',{get: ()=>false })
但是如果是通过in或者hasOwnProperty来判断,
'webdriver' in navigator //or navigator.hasOwnProperty('webdriver')
覆盖webdriver为false就没用了。暂时不知道如何处理这种情况,还没看到deleteProperty这样的方法,当然delete也是没有用的。
翻看PDD前端源码发现还对phantomjs等进行了检测。
有兴趣的可以看看Chrome添加该属性的缘由:https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/6GysDZCWwB8/rXbGoRohBgAJ
可以根据ChromeStatus得知该属性添加的版本为63,但这属性需要到在puppeteer v0.12.0(对应chromium版本为64.0.3240.0 (r508693))中才开始有效,在v0.11.0(63.0.3205.0 (r499413))中还未生效。
转载于:https://www.cnblogs.com/xzysaber/p/9719493.html
puppeteer 的PDD反爬经历相关推荐
- 斗鱼关注人数爬取 | 字体反爬的攻与防
作者:CJ Ting 原文:https://cjting.me/2020/07/01/douyu-crawler-and-font-anti-crawling/ 之前因为业务原因需要爬取一批斗鱼主播的 ...
- 一入爬虫深似海,反爬技术你知多少?
文章目录 1. 习惯性唠叨点啥 2. 什么造就了爬虫 3. 为什么要反爬虫 4. 反反爬虫的权重 5. 高级的反爬手段 6. 爬虫的发展方向 7. 致谢 1. 习惯性唠叨点啥 最近很久一段时间没有 ...
- k 近邻算法解决字体反爬手段|效果非常好
字体反爬,是一种利用 CSS 特性和浏览器渲染规则实现的反爬虫手段.其高明之处在于,就算借助(Selenium 套件.Puppeteer 和 Splash)等渲染工具也无法拿到真实的文字内容. 这种反 ...
- Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)
文章目录 一.使用tesseract做OCR验证码识别 二.代理服务器设置 三.反爬与防反爬 四.封装一个抓取页面的函数 一.使用tesseract做OCR验证码识别 1.cookie, sessio ...
- python爬虫反爬-爬虫怎么测试反爬?
网站有没有反爬,如果你没有用爬虫抓取过,你是不可能知道的. 就算要测试,你还要尝试不同的delay. 如果设置的 delay 在网站的反爬频率外,那就测不出来. 如果在频率内,那就被封.或者封ip,或 ...
- 斗鱼关注人数爬取 ── 字体反爬的攻与防
之前因为业务原因需要爬取一批斗鱼主播的相关数据,在这过程中我发现斗鱼使用了一种很有意思的反爬技术,字体反爬. 打开任何一个斗鱼主播的直播间,例如 这个主播,他的关注人数数据显示在右上角: 斗鱼在关注数 ...
- python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题
前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...
- python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题...
前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...
- 如何破解字体反爬机制
这几天爬取58租房信息的时候意外发现了它是一个字体反爬的网站,所谓的字体反爬就是网站将一些关键字替换为网站自己的字体,这样在网页上字体会正常显示,但是当爬取下来的时候,经过字体加密的字符都是乱码的,根 ...
最新文章
- 检查JavaScript中变量是数字还是字符串
- 如何开启Windows 10隐藏的锁屏时间设置项
- 2015年最值得学习的编程语言是?
- 获得系统当前时间的字符串格式
- 北大OJ百练——3179:最长单词(C语言)
- 中国工程机械制造行业运营状况及发展方向预测报告2021-2027年
- java web scala_spring boot+scala编写web接口
- 根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息
- Delta3d角色注册机制
- ubuntu 中 ROS 一些报错的解决
- MySQL数据库事务隔离性的实现
- ubuntu窗口最小化消失,任务栏上无法找到的解决方法
- DEV控件之ChartControl用法
- 秦时明月更新了?青春回来了
- 求任意多边形面积(凹多边形和凸多边形)
- python 生成word,插入图片如何居中显示
- Android手机“核心科技”---Vibrator(马达)驱动分析
- 一个可以把单张静态照片转化成 3D 图片的AI 工具
- 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘
- 艾美捷SequENZ测序级改造型胰蛋白酶用途和技术说明
热门文章
- Databinding之 Cannot access class ‘xxxViewModel‘. Check your module clas
- Python学习之路33-上下文管理器和else块
- 3000W,三个yahoo广告大片,找了3个“大导演”拍的!中国的最“高”水平了,看了吐死你,不看后悔死你!...
- linux下查询当前所有连接的ip
- C#实现C++的SYSTEMTIME类型
- Spyder 安装openpyxl,报错No module named ‘openpyxl‘
- 堡垒机jumperserver搭建以及监控资源使用
- 【t017】YL杯超级篮球赛
- 二、微信小程序-快速回顾 ( 页面文件 )
- opencv中imread函数使用