大神求救 htmlunit 爬虫抓取中国移动数据的问题。

移动登陆地址:https://sn.ac.10086.cn/login

以下是我的测试代码。 根据元素获取图片保存到本地,然后scanner输入验证码之后模拟提交。但是 如果说 验证码输入的位数不对,还会给我返回 验证码必须为4位
如果按照我下载保存的验证码 去输入没有任何提示了,打印的页面还是 登陆页面。
所以 小弟不知道是因为验证码输入错了。 还是因为这种方法不行?求指教

    String phoneNo = "18220834780";
    String passwords = "xxx";
    String validateCodes = null;
    // 5、模拟用户登录
    final WebClient webClient = new WebClient();
    // 1.获取某个待测页面
    final HtmlPage page = webClient.getPage("https://sn.ac.10086.cn/login");

    System.out.println(page.getTitleText() + "---------------------");

    HtmlForm form = page.getForms().get(0);

    HtmlTextInput username = (HtmlTextInput) form.getInputByName("userName");
    System.out.println(username);

    HtmlPasswordInput password = (HtmlPasswordInput) form.getInputByName("password");
    System.out.println(password);
    HtmlTextInput verifyCode = (HtmlTextInput) form.getInputByName("verifyCode");
    username.setValueAttribute(phoneNo);
    password.setValueAttribute(passwords);

    DomNodeList<DomNode> iList = page.querySelectorAll(".loginPageBtn2013");
    HtmlImage valiCodeImg = (HtmlImage) page.getElementById("verifyImg");
    ImageReader imageReader = valiCodeImg.getImageReader();
    BufferedImage bufferedImage = imageReader.read(0);

    BufferedImage inputbig = new BufferedImage(256, 256, BufferedImage.TYPE_INT_BGR);
    Graphics2D g = (Graphics2D) inputbig.getGraphics();
    g.drawImage(bufferedImage, 0, 0, 100, 100, null); // 画图
    g.dispose();
    inputbig.flush();

    File file2 = new File("e:/"); // 此目录保存缩小后的关键图
    if (file2.exists()) {
        System.out.println("多级目录已经存在不需要创建!!");
    } else {
        // 如果要创建的多级目录不存在才需要创建。
        file2.mkdirs();
    }
    String name = "asasdas.png";
    String fname = name.substring(0, name.lastIndexOf("."));// 新名字
    ImageIO.write(inputbig, "jpg", new File("e:/" + fname + ".jpg")); // 将其保存在C:/imageSort/targetPIC/下
    System.out.println("请输入验证码");
    Scanner scanner = new Scanner(System.in);

    verifyCode.setValueAttribute(scanner.next());
    HtmlPage retPage = ((DomElement) iList.get(0)).click();
    System.out.println(retPage.asXml());

会报错,校验到密码了

 四月 25, 2017 11:00:34 上午 com.gargoylesoftware.htmlunit.javascript.host.Window jsxFunction_confirm
警告: window.confirm("尊敬的客户,由于您的服务密码过于简单,为有效保护您个人信息安全,请您先修改服务密码!") no confirm handler installed, simulating the OK button
四月 25, 2017 11:00:34 上午 com.gargoylesoftware.htmlunit.WebClient openWindow
严重: Error loading content into window
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)

验证码应该是通过了,我改了一些:

        File path = new File("d:/login"); // 此目录保存缩小后的关键图
        if (!path.isDirectory())
            path.mkdirs();

        ImageIO.write(inputbig, "png", new File(path,"code.png")); // 将其保存在C:/imageSort/targetPIC/下
        System.out.println("请输入验证码");
        Scanner scanner = new Scanner(System.in);

        verifyCode.setValueAttribute(scanner.next());
        HtmlPage retPage = ((HtmlElement) iList.get(0)).click();
        System.out.println(retPage.asXml());
        scanner.close();