selenium被识别的解决方法


遇到问题:

selenium做爬虫能解决很多反爬问题,但是selenium也有很多特征可以被识别,比如用selenium驱动浏览器后window.navigator.webdriver值是true,而正常运行浏览器该值是未定义的(undefined)

3步解决方案,实测有效

第一步,使用chrome开发者模式

options = webdriver.ChromeOptions() options.add_experimental_option('excludeSwitches', ['enable-automation']) 
  • 1
  • 2

第二步,禁用启用Blink运行时的功能

options.add_argument("--disable-blink-features=AutomationControlled") 
  • 1

第三步,Selenium执行cdp命令

再次覆盖window.navigator.webdriver的值

driver = webdriver.Chrome(options=options) driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": """ Object.defineProperty(navigator, 'webdriver', { get: () => undefined }) """ })
 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM