关于修改window.navigator.webdriver代码失效问题
我前面写到过sycm自动抓取店铺数据
文章链接:https://blog.csdn.net/qq_35866846/article/details/103410931#comments
但是这个年过完,代码突然不能用了!
经过多方排查我发现:修改window.navigator.webdriver值的
那句代码chrome_options.add_experimental_option('excludeSwitches',['enable-automation'])
没有生效,也就是说selenium打开的浏览器在控制台Console检测结果仍然为TRUE,正常打开的 浏览器测试值应该为undefined
最后查出来原因:是因为我的chrome自动更新了,经测试:79(含79)以后的版本该语句都会失效【测试了79,80,81,个人猜测chrome后续版本把这个配置都给屏蔽掉了】
目前的解决方法:把浏览器退回到79之前的版本
更新容易回去难啊!差点儿把电脑搞报废,最后在安全模式下把系统还原到前几天了才救回来
下面详述下退回chrome的操作:
No1. 先卸载 干净
谷歌浏览器 (注意一定要卸载干净干净,否则下载的安装包点击会没反应)
我是用软件管理卸载的
卸载完成后再执行下面两步
①先用Everything搜索C盘,把google相关的文件夹删掉(如果自己 在C盘找也行,比较慢,而且找不全,建议使用工具)。
Everything下载地址:https://www.voidtools.com/zh-cn/
②(关键
)把注册表HKEY_LOCAL_MACHINESOFTWAREWow6432NodeGoogle删除,可以试试删除注册表的其他google项(不过我没删貌似也没什么问题)。
No2.下载历史版本的chrome浏览器安装包,不要去官网,官网直接给你安装最新版本的
这是我找的历史版本的下载地址(实测可用):
“ https://www.chromedownloads.net/chrome64win/
”
(我下的是76的稳定版)
No3.下载对应版本的驱动,下载地址:http://npm.taobao.org/mirrors/chromedriver/
No4.到这里已经完成了,再执行之前的代码就没问题了,但是为了避免重蹈覆辙还要继续做一步——禁用chrome的自动更新,详细步骤参考以下链接(注意一定要改成禁用禁用
,手动也会被更新):
“ https://jingyan.baidu.com/article/0aa223754076f788cc0d6492.html
”
【写在最后:】如果有更好的办法可以绕过某些网站检测,欢迎在评论区评论交流! 下面有两个方向,欢迎大家尝试 ①使用中间代理截断并修改js返回(由于本人js技术薄弱暂未实现) ②使用pypeeter (暂未尝试成功)
- .NET Core的文件系统[3]:由PhysicalFileProvider构建的物理文件系统
- .NET Core的文件系统[4]:由EmbeddedFileProvider构建的内嵌(资源)文件系统
- 学习July博文总结——支持向量机(SVM)的深入理解(下)
- 在gridview和datagrid里设置列宽
- ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
- .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
- 全球15%工作将被自动化,中国1亿人将面临失业
- ASP.NET MVC的Model元数据提供机制的实现
- 清官难断家务事,人工智能却来介入家庭伦理大戏
- 使用Symfony的Console组件构建命令行程序
- 微软编程教育都在搞什么?从code.org到makecode,从Minecraft到Micro:bit
- 谷歌:通往完全自动驾驶之路
- 随时随地部署Kubernetes
- 使用CoreOs,Docker和Nirmata来部署微服务风格的应用程序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用autoconf生成Makefile并编译工程的步骤
- frida- registernatives获取so层动态注册函数
- Ubuntu下安装并配置VS Code编译C++的方法
- LInux下如何挂载光盘找rpm包的方法步骤
- Linux 改变文件大小的方法
- Canvas系列(9):其他API
- CentOS7将Nginx添加系统服务的方法步骤
- linux ss命令详解
- 如何在Linux中设置快捷方式图标
- foreman ubuntu16 快速安装
- Three.js教程(2):工具篇
- Linux系统多网卡环境下的路由配置详解
- 前端3D文字效果
- Bash中尖括号的更多使用方法
- linux mpstat命令使用详解