2012-01-04 61 views
3

Jsoupを使用してJavaScriptボタンをクリックするにはどうすればよいですか?私は、HTMLをつかむときJsoup javascriptボタンをクリックする

String html = Jsoup.connect(url) 
       .followRedirects(true) 
       .data("login_name", username) 
       .data("password", userpassword) 
       .method(Method.POST).get().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を使用してログインボタンを「クリック」でしょうか?また、.method(Method.POST)の代わりに.post()メソッドを使用しようとしましたが、私のプログラムがうまくいかず、このメッセージが表示されました: "Error:400 error loading URL"

また、私はウェブサイトを所有していません。私はAndroid用に構築しているネイティブアプリでこれを使用しています。

+0

これについて返信しましたか? – Ethan

答えて

0

接続メソッドで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(); 

これを試してください。結果が表示されます。

+0

'login_name'と 'password'要素はホームページにありません。私はこれを試しましたが、.post()メソッドは私に "Error:400 error loading URL"を返しました –

関連する問題