使用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反爬经历相关推荐

  1. 斗鱼关注人数爬取 | 字体反爬的攻与防

    作者:CJ Ting 原文:https://cjting.me/2020/07/01/douyu-crawler-and-font-anti-crawling/ 之前因为业务原因需要爬取一批斗鱼主播的 ...

  2. 一入爬虫深似海,反爬技术你知多少?

    文章目录 1. 习惯性唠叨点啥 2. 什么造就了爬虫 3. 为什么要反爬虫 4. 反反爬虫的权重 5. 高级的反爬手段 6. 爬虫的发展方向 7. 致谢 1. 习惯性唠叨点啥   最近很久一段时间没有 ...

  3. k 近邻算法解决字体反爬手段|效果非常好

    字体反爬,是一种利用 CSS 特性和浏览器渲染规则实现的反爬虫手段.其高明之处在于,就算借助(Selenium 套件.Puppeteer 和 Splash)等渲染工具也无法拿到真实的文字内容. 这种反 ...

  4. Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)

    文章目录 一.使用tesseract做OCR验证码识别 二.代理服务器设置 三.反爬与防反爬 四.封装一个抓取页面的函数 一.使用tesseract做OCR验证码识别 1.cookie, sessio ...

  5. python爬虫反爬-爬虫怎么测试反爬?

    网站有没有反爬,如果你没有用爬虫抓取过,你是不可能知道的. 就算要测试,你还要尝试不同的delay. 如果设置的 delay 在网站的反爬频率外,那就测不出来. 如果在频率内,那就被封.或者封ip,或 ...

  6. 斗鱼关注人数爬取 ── 字体反爬的攻与防

    之前因为业务原因需要爬取一批斗鱼主播的相关数据,在这过程中我发现斗鱼使用了一种很有意思的反爬技术,字体反爬. 打开任何一个斗鱼主播的直播间,例如 这个主播,他的关注人数数据显示在右上角: 斗鱼在关注数 ...

  7. python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题

    前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...

  8. python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题...

    前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...

  9. 如何破解字体反爬机制

    这几天爬取58租房信息的时候意外发现了它是一个字体反爬的网站,所谓的字体反爬就是网站将一些关键字替换为网站自己的字体,这样在网页上字体会正常显示,但是当爬取下来的时候,经过字体加密的字符都是乱码的,根 ...

最新文章

  1. 检查JavaScript中变量是数字还是字符串
  2. 如何开启Windows 10隐藏的锁屏时间设置项
  3. 2015年最值得学习的编程语言是?
  4. 获得系统当前时间的字符串格式
  5. 北大OJ百练——3179:最长单词(C语言)
  6. 中国工程机械制造行业运营状况及发展方向预测报告2021-2027年
  7. java web scala_spring boot+scala编写web接口
  8. 根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息
  9. Delta3d角色注册机制
  10. ubuntu 中 ROS 一些报错的解决
  11. MySQL数据库事务隔离性的实现
  12. ubuntu窗口最小化消失,任务栏上无法找到的解决方法
  13. DEV控件之ChartControl用法
  14. 秦时明月更新了?青春回来了
  15. 求任意多边形面积(凹多边形和凸多边形)
  16. python 生成word,插入图片如何居中显示
  17. Android手机“核心科技”---Vibrator(马达)驱动分析
  18. 一个可以把单张静态照片转化成 3D 图片的AI 工具
  19. 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘
  20. 艾美捷SequENZ测序级改造型胰蛋白酶用途和技术说明

热门文章

  1. Databinding之 Cannot access class ‘xxxViewModel‘. Check your module clas
  2. Python学习之路33-上下文管理器和else块
  3. 3000W,三个yahoo广告大片,找了3个“大导演”拍的!中国的最“高”水平了,看了吐死你,不看后悔死你!...
  4. linux下查询当前所有连接的ip
  5. C#实现C++的SYSTEMTIME类型
  6. Spyder 安装openpyxl,报错No module named ‘openpyxl‘
  7. 堡垒机jumperserver搭建以及监控资源使用
  8. 【t017】YL杯超级篮球赛
  9. 二、微信小程序-快速回顾 ( 页面文件 )
  10. opencv中imread函数使用