[英]Unable to parse website after successful log in JSoup
我使用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);
}
}
此代码有什么问题?
您应该存储和重复使用包含有关会话信息的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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.