そこにはたくさんの情報があることは知っていますが、私の問題にふさわしいものは何も見つかりませんでした。ログインする必要のあるページからデータを収集したい。これが私がやろうとしていることです。
私は次のことを行ってCookieを収集します。
Connection.Response res = Jsoup
.connect("http://website.com/login?event=doLogin")
.execute();
Map <String,String> cookies = res.cookies();
そして、隠された値のhtmlを読んでください:
Document doc = Jsoup
.connect("http://website.com/login?event=doLogin")
.cookies(cookies)
.get();
html = doc.toString();
length = html.length();
counter = 0;
for (int i = 0; i < length; i++) {
if (html.startsWith("document.write", i)){
name[counter] = html.substring(i + 41, i + 144);
value[counter] = "Login";
counter++;
}
if (html.startsWith("hidden", i)) {
name[counter] = html.substring(i + 13, i + 81);
value[counter] = html.substring(i + 90, i + 123);
counter++;
}
}
最後に、この情報を使用して、Cookieと非表示の値を使用してログインします。
Document doc2 = Jsoup
.connect("http://website.com/login?event=doLogin")
.cookies(cookies)
.data("email", "my@email")
.data("pass", "mypass")
.data(name[0], value[0])
.data(name[1], value[1])
.data(name[2], value[2])
.method(Connection.Method.POST)
.get();
System.out.println(doc2);
しかし、私が得たのはログインページだけです。私が試したときに、これらの隠された値が変更される可能性があるのではないかと思います。
Document doc2 = Jsoup.connect
私はそれを正しくやっていますか?