jsoup发布和cookie

| 我正在尝试使用jsoup登录网站,然后抓取信息,我遇到了一个问题,我可以成功登录并从index.php创建文档,但无法在网站上获取其他页面。我知道发布后需要设置一个cookie,然后在尝试打开网站上的另一个页面时加载它。但是我该怎么做呢?以下代码可让我登录并获取index.php
Document doc = Jsoup.connect(\"http://www.example.com/login.php\")
               .data(\"username\", \"myUsername\", 
                     \"password\", \"myPassword\")
               .post();
我知道我可以使用apache httpclient来执行此操作,但我不想这样做。     
已邀请:
        当您登录到站点时,它可能会设置一个授权的会话cookie,需要在后续请求中发送该会话cookie以维护会话。 您可以这样获取Cookie:
Connection.Response res = Jsoup.connect(\"http://www.example.com/login.php\")
    .data(\"username\", \"myUsername\", \"password\", \"myPassword\")
    .method(Method.POST)
    .execute();

Document doc = res.parse();
String sessionId = res.cookie(\"SESSIONID\"); // you will need to check what the right cookie name is
然后根据下一个请求将其发送:
Document doc2 = Jsoup.connect(\"http://www.example.com/otherPage\")
    .cookie(\"SESSIONID\", sessionId)
    .get();
    
        
//This will get you the response.
Response res = Jsoup
    .connect(\"loginPageUrl\")
    .data(\"loginField\", \"login@login.com\", \"passField\", \"pass1234\")
    .method(Method.POST)
    .execute();

//This will get you cookies
Map<String, String> loginCookies = res.cookies();

//And this is the easiest way I\'ve found to remain in session
Document doc = Jsoup.connect(\"urlYouNeedToBeLoggedInToAccess\")
      .cookies(loginCookies)
      .get();
    
        代码在哪里:
Document doc = Jsoup.connect(\"urlYouNeedToBeLoggedInToAccess\").cookies().get(); 
在将其更改为以下内容之前,我遇到了麻烦:
Document doc = Jsoup.connect(\"urlYouNeedToBeLoggedInToAccess\").cookies(cookies).get();
现在它可以完美地工作了。     
        这是您可以尝试的...
import org.jsoup.Connection;


Connection.Response res = null;
    try {
        res = Jsoup
                .connect(\"http://www.example.com/login.php\")
                .data(\"username\", \"your login id\", \"password\", \"your password\")
                .method(Connection.Method.POST)
                .execute();
    } catch (IOException e) {
        e.printStackTrace();
    }
现在保存所有cookie,并向您想要的其他页面发送请求。
//Store Cookies
cookies = res.cookies();
向另一个页面发出请求。
try {
    Document doc = Jsoup.connect(\"your-second-page-link\").cookies(cookies).get();
}
catch(Exception e){
    e.printStackTrace();
}
询问是否需要进一步的帮助。     

要回复问题请先登录注册