Ang*_*gga 6 java selenium captcha selenium-firefoxdriver selenium-webdriver
我尝试使用selenium webdriver在 google 中按图像进行一次搜索,因此我的用户不需要手动打开浏览器并将图像 url 粘贴到那里。但谷歌说
我们的系统检测到来自您的计算机网络的异常流量。此页面会检查是否真的是您发送请求,而不是机器人。
并提供验证码,有没有办法避免使用 selenium webdriver 被谷歌检测为自动化?
这是我的代码:
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://images.google.com/searchbyimage?image_url=";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test2() throws Exception {
driver.get(baseUrl + "http://somesite.com/somepicture.jpg");
driver.findElement(By.linkText("sometext"));
System.out.println("finish");
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
Run Code Online (Sandbox Code Playgroud)
谷歌似乎会检测浏览器配置文件来确定是否发生了奇怪的事情。例如,如果您使用浏览器进行隐私浏览(我使用firefox和chrome进行测试),您的浏览器配置文件将更改为匿名,因此谷歌会发现它可疑并要求您填写验证码。
当您从 selenium webdriver 运行浏览器时也会发生这种情况。
因此,您需要使用类似这样的代码将 selenium 驱动程序配置文件设置为默认配置文件(目前仅适用于 Firefox)
ProfilesIni allProfiles = new ProfilesIni();
WebDriver driver = new FirefoxDriver(allProfiles.getProfile("default"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9700 次 |
| 最近记录: |