使用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))中还未生效。

puppeteer 的PDD反爬经历的更多相关文章

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

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

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

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

  3. 抖音爬虫教程,python爬虫采集反爬策略

    一.爬虫与反爬简介 爬虫就是我们利用某种程序代替人工批量读取.获取网站上的资料信息.而反爬则是跟爬虫的对立面,是竭尽全力阻止非人为的采集网站信息,二者相生相克,水火不容,到目前为止大部分的网站都还是可 ...

  4. 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案

    Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...

  5. Python爬虫入门教程 64-100 反爬教科书级别的网站-汽车之家,字体反爬之二

    说说这个网站 汽车之家,反爬神一般的存在,字体反爬的鼻祖网站,这个网站的开发团队,一定擅长前端吧,2019年4月19日开始写这篇博客,不保证这个代码可以存活到月底,希望后来爬虫coder,继续和汽车之 ...

  6. Python爬虫入门教程 63-100 Python字体反爬之一,没办法,这个必须写,反爬第3篇

    背景交代 在反爬圈子的一个大类,涉及的网站其实蛮多的,目前比较常被爬虫coder欺负的网站,猫眼影视,汽车之家,大众点评,58同城,天眼查......还是蛮多的,技术高手千千万,总有五花八门的反爬技术 ...

  7. Python爬虫入门教程 61-100 写个爬虫碰到反爬了,动手破坏它!

    python3爬虫遇到了反爬 当你兴冲冲的打开一个网页,发现里面的资源好棒,能批量下载就好了,然后感谢写个爬虫down一下,结果,一顿操作之后,发现网站竟然有反爬措施,尴尬了. 接下来的几篇文章,我们 ...

  8. 【Python3爬虫】大众点评爬虫(破解CSS反爬)

    本次爬虫的爬取目标是大众点评上的一些店铺的店铺名称.推荐菜和评分信息. 一.页面分析 进入大众点评,然后选择美食(http://www.dianping.com/wuhan/ch10),可以看到一页有 ...

  9. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

随机推荐

  1. yum和编译两种方式升级or降级Centos内核

    http://blog.51cto.com/renzhiyuan/1882599 今天探讨用yum和编译两种方式升级或者降级内核版本: 升级:比如玩kvm,docker等虚拟化,centos内核则升级 ...

  2. Spring整合Hibernate(转)

    概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使用上Spring的声明式事务 整合步骤 整合前准 ...

  3. JMeterPlugins插件监听器学习-监听器

    JMeterPlugins插件监听器学习-监听器 1.jp@gc - Actiive Threads Over Time:不同时间活动用户数量展示(图表)2.jp@gc - AutoStop List ...

  4. 学习笔记: jstack与线程状态

    jstatck可以打印JVM内部所有线程 1.查看有哪些java进程 2.查看所有线程的信息 重定向到5579.txt文件中 jstack 5579 > 5579.txt 3.线程的状态 New ...

  5. js for dwg viewer in B/S

    https://github.com/autodesk-forge/ https://sharecad.org/zh/DWGOnlinePlugin http://3d-viewers.com/lic ...

  6. ASP.NET Web APIs 基于令牌TOKEN验证的实现(保存到DB的Token)

    http://www.cnblogs.com/niuww/p/5639637.html 保存到DB的Token 基于.Net Framework 4.0 Web API开发(4):ASP.NET We ...

  7. spring boot 热更新配置

    maven添加 spring-boot-devtools 允许自动构建 设置里面,搜索compiler,在Build,Execution,Deployment里面勾选Build project aut ...

  8. NetBeans IDE 多行标签设置方法

  9. 【微软版本】redis 安装启动及设置密码<windows>

    redis 安装启动及设置密码<windows>   redis 1. 安装 1.1 下载解压包,直接解压到任意路径下即可 windows下载地址:ttps://github.com/MS ...

  10. vue element-ui 用checkebox 来模拟选值 1/0

    https://jsfiddle.net/57dz2m3s/12/ 复制 粘贴 打开url就可以看到效果