防止Selenium被检测

很多网站或者防火墙针对Selenium进行了检测,对程序控制的浏览器不予响应,导致我们的网页自动化无法运行。

可以通过这个网站进行检测 https://bot.sannysoft.com/


原因是webdriver有一些特征是完全可能被服务器端或防火墙检测到的。
传统的应对方法基本都失效了,比如stealth.js,cdp command等等。

undetected_chromedriver

undetected_chromedriver可以通过检测,但是如果你的程序大都是webdriver写的,迁移到undetected_chromedriver也是不小的工作量。

1
2
3
4
import undetected_chromedriver as uc
import time
driver = uc.Chrome()
driver.get('https://bot.sannysoft.com/')

试试webdriver驱动firefox

顺利通过检测,为了避免以后firefox自动升级而driver不能适配,最好把firefox打包成portable版的。
以前webdriver编写的大部分代码不需要更改。


阅读全文