Jsoup 点击JavaScript按钮

3

我该如何使用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本机应用程序使用它。

你有没有收到这方面的回复? - Ethan
1个回答

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();  

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


'login_name'和'password'元素不在主页上。我尝试了这个,但.post()方法再次给出了“Error: 400 error loading URL”错误。 - Dr. Danger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接