来源:python中国网 时间:2020-02-23

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

  网上的各种文章往往告诉大家把selenium做一下启动配置即可,如下:

  option.add_experimental_option("excludeSwitches", ['enable-automation'])

  但是实际操作后发现并没有卵用,不管怎么配置window.navigator.webdriver的值还是true,原因安在?

  1 因为网上的文章大都是复制粘贴,一个错全都错。

  2 网上的文章太老了,即使今天是对的,随着时间推移版本更替也可能变成错的。

  3 因为ChromeDriver 79.0.3945.36版本无法通过更改enable-automation设置解决window.navigator.webdriver==true的问题。谷歌浏览器修复了非无头模式下排除“启用自动化”时window.navigator.webdriver是未定义的问题。

  要想正常使用,得把把Chrome回滚一个版本,并找到对应的ChromeDriver版本。这样才可以!

  一言以蔽之,因为版本不同所以配置不起作用。 【欢迎大家加群-研究各种-奇葩报错】python学习会