使用selenium写爬虫的时候window.navigator.webdriver
的值是true
,容易被识别,需要隐藏起来,都说这个execute_cdp_cmd
的方法有效,但是都是python
版本的,java
尝试了发现没效果。我的版本是 Chrome/106.0.5249.119
经过在Bd的知识海洋中捞针,在
https://blog.csdn.net/qq_40178216/article/details/113838645
得到灵感。并尝试了一下竟然成功了遂留下真迹
检测网站
https://bot.sannysoft.com/文章来源:https://www.toymoban.com/news/detail-514151.html
-
未改之前:
chromeDriver
隐藏window.navigator.webdrive
r为true文章来源地址https://www.toymoban.com/news/detail-514151.html
//开启一个实验性参数excludeSwitches,用来隐藏window.navigator.webdriver返回true,这个参数必须是List
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.setExperimentalOption("excludeSwitches", Lists.newArrayList("enable-automation"));
chromeOptions.addArguments("--disable-blink-features=AutomationControlled");//发现主要是这句是关键
-
测试后的结果
本次的selenium-java
依赖情况:
<properties>
<selenium.version>4.0.0-alpha-2</selenium.version>
</properties>
<dependencies>
<!--selenium-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>${selenium.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium.version}</version>
</dependency>
</dependencies>
当然不同的网站的对爬虫的检测方式可能不一样,还望评下留情!
到了这里,关于selenium爬虫反爬-修改window.navigator.webdriver的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!