首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsoup posting和cookie

jsoup posting和cookie
EN

Stack Overflow用户
提问于 2011-06-22 06:56:07
回答 6查看 62.1K关注 0票数 50

我正在尝试使用jsoup登录到一个网站,然后抓取信息,我遇到了一个问题,我可以成功登录并从index.php创建文档,但我无法获得网站上的其他页面。我知道我需要在我发布后设置一个cookie,然后当我试图在网站上打开另一个页面时加载它。但是我该怎么做呢?下面的代码让我登录并获取index.php

代码语言:javascript
复制
Document doc = Jsoup.connect("http://www.example.com/login.php")
               .data("username", "myUsername", 
                     "password", "myPassword")
               .post();

我知道我可以使用apache httpclient来做这件事,但我不想这样做。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-25 17:16:19

当您登录到该站点时,它可能正在设置一个授权的会话cookie,需要在后续请求中发送该cookie以维护会话。

您可以像这样获取cookie:

代码语言:javascript
复制
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

然后在下一个请求中发送它,如下所示:

代码语言:javascript
复制
Document doc2 = Jsoup.connect("http://www.example.com/otherPage")
    .cookie("SESSIONID", sessionId)
    .get();
票数 110
EN

Stack Overflow用户

发布于 2012-05-10 19:53:22

代码语言:javascript
复制
//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();
票数 19
EN

Stack Overflow用户

发布于 2012-12-29 09:14:32

其中的代码是:

代码语言:javascript
复制
Document doc = Jsoup.connect("urlYouNeedToBeLoggedInToAccess").cookies().get(); 

我一直有困难,直到我把它改为:

代码语言:javascript
复制
Document doc = Jsoup.connect("urlYouNeedToBeLoggedInToAccess").cookies(cookies).get();

现在,它工作得无懈可击。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6432970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档