如何使用jsoup创建会话以及如何使用jsoup发布数据

时间:2013-12-30 13:35:31

标签: jsoup

我无法使用 jsoup 创建会话以及如何使用jsoup发布数据。请帮助我,我是jsoup api的新手,实际上我的代码是:

Connection.Response res = Jsoup.connect("https://wiki.my---------------")
    .userAgent("Mozila")
    .timeout(0)
    .method(Method.GET)
    .execute();

Document docu = res.parse();
Map<String, String> cookies = afterLogin.cookies();
Document doc2 = (Document) Jsoup.connect("https://wiki.my------------------")
    .data("os_username", "A57", "os_password", "pass")
    .data("login", "Log on")
    .cookies(cookies)
    .timeout(0)
    .post();

我有一个网页( doc2 ),然后将某个表添加到该网页( doc2 )?

如何添加新数据已存在的网页 doc2 ,然后如何将 doc2 发布到花药url。已经尝试了很多,请帮助我。

2 个答案:

答案 0 :(得分:5)

也许您使用错误的Cookie,试试这个

Document doc2 = (Document) Jsoup.connect("https://wiki.myatos.net/display/RMSTRV/CCBO+Patches")
    .data("os_username", "A57", "os_password", "pass")
    .data("login", "Log on")
    .cookies(res.cookies())
    .timeout(0)
    .post();

答案 1 :(得分:5)

要使用jsoup登录任何网站并从本网站检索和解析数据,您只需按照以下说明操作:

首先,您需要知道您将用它来登录网站所有页面的cookie名称(会话名称)。

注意:您可以知道以下任何网站的会话名称: 登录您想要了解其会话名称或Cookie的网站 然后在URL字段中写入此命令

javascript:void(alert(document.cookie))

复制会话名称然后执行此操作

Response res = Jsoup.connect("login Site URL")
            .method(Method.GET)
            .timeout(10000)
            .execute();

   String sessionID = res.cookie("SESSION ID for site");//here put the Session Name for website 

现在您拥有网站的会话名称,但仍需要填写登录信息

String username="your username";
String password="your pass";

Jsoup.connect("login Site URL")
            .data("login:username", username, "login:password", password, "login:loginImg", "", "login", "login")
            .cookie("SESSIONID", sessionID)
            .method(Method.POST)
            .timeout(10000)
            .execute();// now you have filled the Session Name with your login info and you can use it for any page in website


Document doc = Jsoup.connect("any page of site")
            .cookie("SESSIONID", sessionID)
            .timeout(10000)
            .get();// her to open any page with Session 

您已拥有它的名称

现在您只需要转到从中获取数据所需的标记或元素

System.out.println(doc.body().text());// for print all text in page

或者如果你有元素ID,你可以获得这样的数据

String S = doc.select("span[id^=here put element id]");
System.out.println(S);

或者像这样

String S=doc.getElementById("ElementID").text();
System.out.println(S);