Jsoup javascript按钮点击

时间:2012-01-04 02:32:29

标签: javascript android html forms jsoup

如何使用Jsoup执行点击javascript按钮?

 String html = Jsoup.connect(url)
                .followRedirects(true)
                .data("login_name", username)
                .data("password", userpassword)
                .method(Method.POST).get().html();

这是我用来在网站中设置用户名和密码字段的代码,但是当我抓取html时,它会给我登录页面的html,其中填写了页面的字段,而不是登录后的页面。所以这必须意味着Jsoup只是填补了字段,但没有登录。我将如何去做?此外,登录按钮没有id元素,也没有name元素。它只有javascript。对不起,如果我不清楚,我是新手。这是表单的html代码:

 <form name="form" id="form" method="POST" action="/portal/login?etarget=login_form" autocomplete="off"> 

这是登录按钮的html代码:

<a href="javascript:document.form.event_override.value='login';document.form.submit();" class="btn_css">    

如何使用Jsoup“点击”登录按钮?此外,我尝试使用.post()方法而不是.method(Method.POST),但是当我这样做时,我的程序无法正常工作,并给了我这条消息:“错误:400错误加载URL”

此外,我不拥有该网站,我在我正在为Android构建的本机应用程序中使用它。

1 个答案:

答案 0 :(得分:0)

在connect方法中传递URL时,不要传递登录页面URL,而是传递主页链接。

Document doc = Jsoup.connect("http://www.website.com/home.php")
  .data("email", "myemailid")
  .data("pass", "mypassword")
  // and other fields which are being passed in post request.
  .userAgent("Mozilla")
  .post();  

试试这个,你就会得到你的结果。