Selenium防止被反爬识别(关闭自动化控制标志)
创作时间:
作者:
@小白创作中心
Selenium防止被反爬识别(关闭自动化控制标志)
引用
1
来源
1.
https://www.cnblogs.com/stxz/p/18411331
在使用Selenium进行网页抓取时,WebDriver会向服务器发送信息以表明请求是自动化的。WebDriver被期望具有诸如window.navigator.webdriver
之类的属性,这是W3C WebDriver规范所规定的,以便于进行更好的测试和作为一种安全功能。但是这会导致被Web服务器检测到,从而导致被标记或被拒绝访问。
随着execute_cdp_cmd(cmd, cmd_args)
命令的可用性,现在可以使用Selenium轻松执行Google Chrome DevTools命令。这使得可以更改默认的标志。
问题描述
在默认情况下,当使用Selenium打开Chrome浏览器时,网站可以通过检查navigator.webdriver
属性来判断是否为自动化工具。例如,访问bot.sannysoft.com时,会显示"Chrome正受到自动测试软件的控制"的提示。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://bot.sannysoft.com/')
解决方案
为了隐藏自动化工具的身份,可以通过以下步骤来修改Chrome的设置:
- 创建ChromeOptions实例并添加必要的参数
- 使用JavaScript代码将
navigator.webdriver
属性值更改为undefined
以下是具体的Python代码实现:
from selenium import webdriver
# 创建一个Chromeoptions实例
options = webdriver.ChromeOptions()
# 添加一个参数来禁用“AutomationControlled”标志
options.add_argument("--disable-blink-features=AutomationControlled")
# Exclude the collection of enable-automation switches
options.add_experimental_option("excludeSwitches", ["enable-automation"])
# 关闭 userAutomationExtension
options.add_experimental_option("useAutomationExtension", False)
# 创建chrome的webDriver
driver = webdriver.Chrome(options=options)
# 重要!!将webdriver的navigator值属性更改为undefined
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.get('https://bot.sannysoft.com/') # 注意该网站需梯子才能打开
通过上述设置,再次访问bot.sannysoft.com时,将不会显示"Chrome正受到自动测试软件的控制"的提示。
热门推荐
员工自动离职劳动法如何规定
高铁时代下的中国:快速发展带来的新机遇
每天这样做,远离便秘困扰
雾面妆感 vs 水光妆感:如何选择适合你的底妆风格?
市场缺口形成的原因及其影响
锦育豆41大豆品种简介(辽宁省春播生育期134天)
黄豆种植不求人,3个高产要点早知道,粒粒饱满大颗,光滑又好吃
喝完酒吹风头疼是怎么回事
如何选择安全可靠的理财产品?理财产品的收益与风险如何进行平衡?
电动车和摩托车的使用寿命究竟多长?成本揭秘
组蛋白:染色体基本结构蛋白的奥秘
有钱有闲赶快去体验新的生活,不要买物质的东西
WordPress如何防止恶意爬虫抓取内容
新书速递|费德里科·加西亚·洛尔迦:精魂从脚底升起
了解阻抗:万用表测喇叭,测的是什么?
乡村数字化教育平台功能拓展,数字赋能农村教育的新路径
Steam退款流程详解:轻松应对不合适游戏的烦恼!
电子烟比传统卷烟安全吗?
如何进行有效的需求分析?——深入探讨需求分析的最佳实践
婴儿疫苗接种全攻略:从4合1到6合1,接种时间表及注意事项
如何依据瞳距配制眼镜
掌握这7点技巧,科目四考试轻松过
Switch连接电视无信号怎么办?一文详解排查与解决方法
灭活疫苗是什么意思
如何选择适合居住的城市区域?这样的区域有哪些生活便利和不足之处?
多旋翼无人机光伏发电站吊运技术详解
体重管理怎么管?从全民科学运动到主动健康管理,广东这样做
海棠花根系的特点与发达程度(探究海棠花生长的根系结构及其对生长的影响)
一文读懂 | 不打官司也能解决纠纷?点击了解“诉前调解”那些事儿→
司法确认:一种省时、省力又省钱的纠纷解决途径