在爬取网站的时候selenium的webdriver特征值太过显眼了,非常容易被检测出来从而导致在进行一些自动化登录爬取验证等操作时候无法正常工作,我们需要将这些特征值隐藏起来
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_experimental_option('useAutomationExtension',False)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
隐藏前:
在控制台上输入:window.navigator.webdriver,显示结果为true,很明显被检测到了,这个时候即便是手动验证码他也会过不了。
隐藏后:
输入:window.navigator.webdriver显示undefined,验证码走一遍后也会直接过了