之所以尝试 BOSSzhipin,我想通过脚本去每天点一下简历刷新
51job,智联,猎聘 目前都是没有验证码的。都已经写好了脚本。
方法自己做了一下修改,可以成功滑动,但是哎呀,出错了,点击刷新再来一次(error:XdrDr)
public static void move(WebDriver driver, WebElement element, int distance) throws InterruptedException {
System.out.println(element.getAttribute("class"));
Actions actions = new Actions(driver);
actions.clickAndHold(element);
int s = 1;
int y = 3;
for (int i = 0; i < 278; i++){
s += 1;
y=new Random().nextInt(40) ;
actions.moveToElement(element, s, y).perform();
Thread.sleep(new Random().nextInt(100) + 150);
}
actions.moveByOffset(300, 5).perform();
Thread.sleep(1000);
}
就思考了一下,是不是支持鼠标 “前台” 滑动就能通过呢,
使用鼠标滑动几次都成功了,使用程序控制鼠标滑动,是这种鼠标前台的模拟而不是通过鼠标消息去模拟,能不能通过呢?
java 里我不知道怎么使鼠标 “前台操作”
鼠标操作分两种,一种是鼠标消息(后台),一种是前台模拟
发消息(后台),鼠标可以打断操作
前台,模拟鼠标操作,不能打断,显然这不是一种高效的方式
但是这个验证过程我只需要 1 -2 s 那又有什么关系呢?
于是用易语言
写了一个 demo
这是一个成功 demo(之所以这里成功了,是因为这里的浏览器是我手动打开的,不是通过 java 的 driver 打开的)
视频演示如下(高版本的浏览器可以直接跳转播放,IE 浏览器则会下载)要是论坛支持视频引用就好了。
http://qiniu.domoyun.com/file-hash-mp4-45ebef86adcb54cd6ab560f62e5d185c865543.mp4
既然可以成功
把这个第三方脚本放入 java re'sou'rces 中,在输入完账号密码后调用这个第三方脚本
private static void firefoxtest() throws InterruptedException, IOException {
//System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "src/main/resources/driver/ChromeDriver 2.45.exe");
System.setProperty(SystemProperty.BROWSER_BINARY, "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://login.zhipin.com/?ka=header-login");
Thread.sleep(2000);
driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[1]/span[2]/input")).sendKeys("15616216603");;
driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[2]/span/input")).sendKeys("qq123456");;
Runtime.getRuntime().exec("src/main/resources/driver/pangluo.exe"); //执行外部程序pangluo.exe
Thread.sleep(5000);
driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[4]/button")).click();
Thread.sleep(6000);
driver.quit();
}
http://qiniu.domoyun.com/file-hash-mp4-c0241da660bbb3722cb1d5eb8cd06eb31378322.mp4
经反复测试,只要用 driver 打开的浏览器,就无法验证通过,即使是手动用鼠标滑。也是报错/
我测试了 firefox、chrome 都没成功
不通过 selenium,就用易语言
全部通过前台点击能达到我的目的,显然是一件低效的事情,况且 BOSSzhipin 刷新简历一天只能刷新一次并且还是收费,