自动google登录并下载应用统计信息

时间:2015-06-03 08:54:33

标签: java google-play htmlunit

所以目前我有一个抓取程序,登录谷歌帐户并从谷歌播放开发者控制台(下载,ANR,崩溃等)获取应用程序数据。我使用java和HTMLUnit库作为scraper。以下是登录部分的片段:

public static void login(String url)
{
  try
  {
    Utility.turn_off_warning(webclient); //this is just to turn off the warning in HTMLUnit

    HtmlPage page = (HtmlPage)webclient.getPage(url);
    //getting the elements
    HtmlTextInput email = (HtmlTextInput)page.getElementById("Email"); 
    HtmlPasswordInput pass = (HtmlPasswordInput)page.getElementById("Passwd");
    HtmlSubmitInput submit = (HtmlSubmitInput)page.getElementById("signIn");

// inserting value

    email.setValueAttribute(Settings.google_username);
    pass.setValueAttribute(Settings.google_pass);

// press login button
    HtmlPage afterLogin = (HtmlPage)submit.click();


    System.out.print("Logged In");
  }
  catch (Exception e)
  {
    e.printStackTrace();
  }
}

所以上面的代码适用于登录部分,直到谷歌几周前更改了登录页面的结构IIRC,现在你必须先输入电子邮件,按下一个按钮,输入密码,然后按登录按钮。我试着设置我的刮刀来做到这一点,但它没有用。我想这是因为HTMLUnit无法处理页面中javascript的任何变化,所以现在我被卡住了。任何帮助或建议都非常感谢...谢谢:)

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。

 webclient.setJavaScriptEnabled(false);

我添加了这一行,它有效。我只需要改变

的流量
grabbing all elements -> set all value -> click submit

grab email input and submit button -> set email -> 
submit -> grab password and submit button -> set password -> submit