你有没有想弄个python+selenium+webdriver爬虫,爬到中间环节突然间操作不了了!被网页防爬系统给检测到是爬虫行为了!ta是怎么检测到的?
其实用selenium webdiver 设置默认参数是会被JavaScript检测出来是爬虫的!因为如果你启动 chrome 的时候不设置 ChromeOptions。
读取 window.navigator.webdriver 变量它就会为 True。
我们只需要在启动 chrome 的时候设置参数为
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
self.chrome = webdriver.Chrome(chrome_options = options)
就有“可能”得到 window.navigator.webdriver = undefined
相信有些人到这这里应该也明白了。但是这不是我写这篇文章的目的。
还是有可能会结果不变 window.navigator.webdriver 读取到的值依旧为 True 而不是 undefined!下面就是我要讲的主题。
因为网上也能搜索到这个设置的方法,但是那些文章都是千篇一律的抄,一错众错。那些教程还少了个重点。或许是他们写这个教程的时候这个问题还没有出现。只是教程没有实时更新而已。
那么是什么问题呢?是Chrome 更新到了 78 以后这个参数设置就不起作用了!需要把谷歌版本降级。我用的就是chrome 72 的 32x
送人送到西,帮佛帮到底:这是去西天取 chrome 72 32位 + chromedriver 72 的传送门