27

Jsoup を使用してサイトにログインするために Web サイトにデータを POST しようとしていますが、うまくいきませんか?

私はコードを試しています

    Document docs = Jsoup.connect("http://some.com/login")
        .data("cmd", "login","username", "xxxx","password", "yyyyy")
        .referrer("http://some.com/login/").post();

ここでは、pagesource でログインの通常のページを指定しています

私もコードを試しました

 Document docs = (Document) Jsoup.connect("http://some.com/login")
    .data("cmd", "login","username", "xxxx","password", "yyyyy")
    .referrer("http://some.com/login/").method(Method.POST).execute().parse();

ここでも、ページソースで通常のログインページを再度提供しています。

同じことに関する提案は大歓迎です!!

ありがとう....

4

3 に答える 3

34

例を挙げて、あなたの質問に答えます。Facebookにログインしたいとします。

次に、ユーザー名とパスワードの他に、POSTリクエストを介して渡される他の多くのパラメーターがあります。これらのすべてのパラメーターは非表示になり、ユーザー名やパスワードと同様に渡されます。例えば ​​:

Facebookのを開くと、html source非表示になっているパラメータが1つありlgnrnd、その値は071129_5D7Mです。

したがって、このような他の多くのパラメータがあります。すべてのパラメータを渡す必要があります。また、を指定する必要がありますuserAgent.

Document doc = Jsoup.connect("http://www.facebook.com")
.data("email", "myemailid")
.data("pass", "mypassword")
// and other hidden fields which are being passed in post request.
.userAgent("Mozilla")
.post();
System.out.println(doc); // will print html source of homepage of facebook.
于 2012-04-04T14:16:12.690 に答える
2

問題が JavaScript のリダイレクトである場合は、JavaScript にアクセスして、リダイレクト先の URL が静的かどうかを確認し、リダイレクトを使用してアクセスを取得することができます。javascriptで作成したポップアップボックスに一度アクセスするためにそれを行いました。

于 2012-08-04T17:06:00.123 に答える