selenium webdriver 开启网页失败,被发现为爬虫,的解决办法
1换用火狐浏览器2隐藏谷歌浏览器中的特殊变量值from selenium import webdriver options webdriver.ChromeOptions() # -- 防止被检测旧版本用法1 # chrome在79版之前用这个 options.add_experimental_option(excludeSwitches, [enable-automation]) options.add_experimental_option(useAutomationExtension, False) driver webdriver.Chrome(optionsoptions) # -- 防止被检测新版本用法2 # chrome在79和79版之后用这个 driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, { source: Object.defineProperty(navigator, webdriver, { get: () undefined }) }) driver.get(http://www.xxx.com/) time.sleep(60) driver.close() driver.quit()3更换工具使用新秀DrissionPageDrissionPage不需要driver驱动文件虽然只支持谷歌内核浏览器。既方便抗检测也更强值得试试。4更换工具使用新秀PlaywrightPlaywright和DrissionPage差不多都是2020年开始的新项目都不需要driver。Playwright另外可以支持火狐和WebKitSafari网站检测selenium的原理是1selenium在开启后的浏览器加了一些变量值如window.navigator.webdriver 等等。2像window.navigator.webdriver在正常的谷歌浏览器是undefined在selenium打开的谷歌浏览器是true。网站就下发js代码检测这个变量值给网站网站判断这个值为true就是爬虫程序就封杀。变量值一般不止这一个。不同的浏览器驱动不同像火狐浏览器控制台输入window.navigator.webdriver虽然还是true但不会被检测出来。