gpt4 book ai didi

java - 成功登录JSoup后无法解析网站

转载 作者:行者123 更新时间:2023-12-01 11:45:23 25 4
gpt4 key购买 nike

我使用 JSoup 库成功登录网站,存储 cookie,以便我可以将它们用于需要访问的第二个文档。然而,第二个文档解析数据,就好像我没有登录一样。

这是代码:

public class Main {

public static void main(String[] args) throws Exception {

Map<String, String> loginCookies = null;


Connection.Response loginForm = Jsoup.connect("login page")
.method(Connection.Method.GET)
.execute();

loginCookies = loginForm.cookies();

Document document = Jsoup.connect("login page")
.data("cookieexists", "false")
.data("username", "user")
.data("password", "pass")
.data("loginbtn", "Log in")
.cookies(loginCookies)
.post();


Document document2 = Jsoup.connect("Page with access required")
.cookies(loginCookies)
.get();

System.out.println(document2);
}

}

这段代码可能有什么问题?

最佳答案

您应该存储和重用包含有关您的 session 的信息的 cookie,这意味着您需要从传递凭据后获得的服务器响应中存储它们,而不仅仅是从空表单中存储它们。

所以尝试一下

Connection.Response loginForm = Jsoup.connect("login page")
.data("cookieexists", "false")
.data("username", "user")
.data("password", "pass")
.data("loginbtn", "Log in")
//.cookies(loginCookies)
.method(Connection.Method.POST)
.execute();

//here `loginForm` connected to server with your credentials
//and server returned response with cookies containing informations
//required to continue session so you should store them
//and reuse to access farther pages
Map<String, String> loginCookies = loginForm.cookies();

Document document2 = Jsoup.connect("Page with access required")
.cookies(loginCookies)
.get();

System.out.println(document2);

关于java - 成功登录JSoup后无法解析网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com