python经典学习
设置pip的国内镜像下载源
python经典项目必学或必会用【持续更新。。。】
python使用虚拟环境virtualenv
如何正确移除selenium中的window.navigator.webdriver
PyAutoGUI-python版按键精灵
QT中使用QSS进行界面美化及很好的QSS样式表
【AI】使用Stable Diffusion的WebUi版本
Mojo新语言的学习
使用Nuitka打包exe程序
python常见错误
超强的python库--vaex
python库-zmail的使用
python库-APScheduler定时任务
rich库--终端显示美化神器
关于套用lut的库使用-pycubelut和lutlib
本文档使用 MrDoc 发布
-
+
up
down
首页
如何正确移除selenium中的window.navigator.webdriver
# 前言 如下图,我们本地打开Chrome时,是不会有“Chrome正受到自动测试软件的控制”提示的  但是如果通过selenium会出现如下提示:  通常这个情况下,console下可以看到:window.navigator.webdriver是为true的,本地打开时,这个值应该是undefined的。 # 原因 这样网站就可以识别访问者是不是用的Selenium模拟浏览器。如果是,就禁止访问或者触发其他反爬虫的机制。 # 正确移除selenium中的window.navigator.webdriver 针对新版Chrome,我们需要在网站打开前就运行一段js即可,然后加上旧版时使用的实验选项进行移除。 于是可以写出: ```python from selenium.webdriver import Chrome driver = Chrome('./chromedriver') options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": """ Object.defineProperty(navigator, 'webdriver', { get: () => undefined }) """ }) driver.get('http://www.baidu.com') ``` > i关键语句是execute_cdp_cmd,只需要执行一次,之后只要你不关闭这个driver开启的窗口,无论你打开多少个网址,他都会自动提前在网站自带的所有 js 之前执行这个语句,隐藏window.navigator.webdriver > i也可以继续加入两个实验选项add_experimental_option
laihui126
2022年4月19日 19:58
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅道文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅道文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅道文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
下载Markdown文件
分享
链接
类型
密码
更新密码