繁体   English   中英

如何使用JSoup导航页面

[英]How to use JSoup to navigate pages

我正在研究一个解析html页面并使用其元素的android应用,然后转到下一页并提取其元素。 我以前是用Selenium来做这项工作的,但是当我在Android上使用它时,它会占用过多的内存,并且应用程序停止响应。 现在,我被困在登录页面中,必须输入用户名和密码。 我设法做到了,但无法转到下一页。 它会返回相同的登录页面,而不是下一个。 我真的需要用JSoup做到这一点,因为最终代码必须与android应用程序代码集成在一起。 请帮助!

 try {


        String url = "http://slateisb.nu.edu.pk/portal";
        Document doc = Jsoup.connect(url).
                followRedirects(true).
                data("eid", "i110013").
                data("pw", "001").
                method(Method.POST).get();
        String title = doc.title();
        print("Title : %s" , title);

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
import java.util.Map;

import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class Main {

    public static void main(String[] args) {
        try {
            //In this url you must login
            String loginUrl = "http://slateisb.nu.edu.pk/portal/xlogin";

            //This is an example, it can be anything else
            String url = "http://slateisb.nu.edu.pk/portal";

            //First login. Take the cookies
            Connection.Response res = Jsoup
                    .connect(loginUrl)
                    .data("eid", "i110013")
                    .data("pw", "001")
                    .referrer("http://www.google.com")
                    .userAgent(
                            "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .method(Method.POST).timeout(0).execute();

            Map<String, String> loginCookies = res.cookies();

            //Now you can parse any page you want, as long as you pass the cookies
            Document doc = Jsoup
                    .connect(url)
                    .timeout(0)
                    .cookies(loginCookies)
                    .referrer("http://www.google.com")
                    .userAgent(
                            "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .get();

            System.out.println("Title : " + doc.title());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM