selenium被某些网页检测不允许正常访问、登录等,解决办法
2024-09-08 18:28:12
网站通过什么方式检测
function b() {
return "$cdc_asdjflasutopfhvcZLmcfl_"in u || d.webdriver
}
- 通过上方的js网站可以检测chromedriver.exe的特征码:
$cdc_asdjflasutopfhvcZLmcfl_
- js还会检测window.navigator.webdriver这个属性,如果用selenium调用浏览器这个值会是true,手动打开浏览器这个值是false;可以通过浏览器的console输入console.log(window.navigator.webdriver)查看该属性的值
$cdc_asdjflasutopfhvcZLmcfl_ 特征码解决办法
有人说在电脑上使用notepad++打开chromedriver.exe文件搜索修改$cdc_asdjflasutopfhvcZLmcfl_这个值可以解决。不过我用notepad++打开后可能是因为编码问题,我并没有找到这个值。所以我上传到服务器上用vim编辑器做的修改,如下:
- 上传chromedriver.exe文件到服务器上
- 使用vim编辑器打开chromedriver.exe文件,并查找$cdc_asdjflasutopfhvcZLmcfl_这个值进行修改
需要注意的是:cdc_asdjflasutopfhvcZLmcfl_这个值是多少个字符,那么你修改完之后还需要是多少个字符。
- 修改完之后:wq保存病退出,然后把这个文件重新下载到电脑上就行了
webdriver值为true的解决办法
方案1:设置webdriver的值为false
if __name__ == '__main__':
service = Service('chromedriver.exe')
option = webdriver.ChromeOptions()
option.add_argument('disable-infobars')
option.add_argument('sec-fetch-site=same-site')
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option("excludeSwitches", ['enable-automation'])
option.add_argument("--disable-blink-features")
option.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(service=service,options=option)
使用option自定义配置chrome浏览器修改webdriver的值为false
方案2:设置webdriver的值为undefined
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
最新文章
- 在使用EF时调用DBFUNCTION扩展方法时,发生ENTITYCOMMANDEXECUTIONEXCEPTION 异常的解决办法
- linux 并发 RCU
- Android框架中的广播机制
- mybatis 使用记录
- [IT新应用]存储入门-文件级存储及块级别存储的选择
- How Do I Deploy a Windows 8 App to Another Device for Testing?
- 关于session_start()这个问题
- Mysql清理二进制日志的技巧
- Softmax函数详解与推导
- Python-正则复习-56
- Visio制图之垮职能流程图
- Spring:获取容器中的Bean
- Struts2常用标签总结(申明:来源于网络)
- ZJOI 2015 幻想乡战略游戏(动态点分治)
- Django+Uwsgi+Nginx部署
- python爬虫_入门
- python--列表内建函数的方法
- Linux kgdb命令
- Unity Download Assistant Error: 'SendRequest Error' while downloading ini file from http://files.unity3d.com/bootstrapper/29055738eb78/unity-5.3.6f1-win.ini
- Java 界面编程【02】事件注册
热门文章
- helm安装kube-state-metrics-4.16.0
- Prometheus Operator 对接 Thanos
- 查看docker容器占用的内存
- Logstash:为 Logstash 日志启动索引生命周期管理
- 手把手教你玩转 Gitea|使用 Docker 安装 Gitea
- 「国产系统」Tubian 0.3,兼容Windows和Android的GNU/Linux系统!
- PHP全栈开发(六):PHP与HTML页面交互
- 一个C#开发者学习SpringCloud搭建微服务的心路历程
- 洛谷P1395 会议 (树的重心)
- 超强的纯 CSS 鼠标点击拖拽效果