获取java中的网站链接

时间:2015-09-12 12:39:26

标签: java

我想在一个网站上看到所有链接。我们假设网站是http://www.ub.edu/web/ub/en/

我该怎么做?

 URL url = new URL("http://www.ub.edu/web/ub/en/"); 
    URLConnection con = url.openConnection(); 
    BufferedReader br = new BufferedReader( 
                            new InputStreamReader( 
                            con.getInputStream())); 

2 个答案:

答案 0 :(得分:4)

您可以使用jsoup来解析html。它很容易使用。这里所有链接都将添加到列表中。

String url = "http://www.ub.edu/web/ub/en/";
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("a[href]");

List<String> listOfLinks = new ArrayList<>();
for (Element link : links){
    listOfLinks.add(link.attr("abs:href"));
}

System.out.println(listOfLinks);

此外,还有很多问题要与此问题相关联。所以,继续搜索。

答案 1 :(得分:1)

这也可以通过添加几行代码来完成,而无需引入实用程序库。

        URL url = new URL("http://www.ub.edu/web/ub/en/");
        URLConnection con = url.openConnection();
        BufferedReader br = new BufferedReader(new InputStreamReader(
                con.getInputStream()));

        Pattern anchorPattern = Pattern.compile(
                "<a[^>]+href\\s*=\\s*([\"'])((?:(?!\\1).)*)\\1",
                Pattern.CASE_INSENSITIVE);
        String line = br.readLine();
        while (line != null) {
            Matcher m = anchorPattern.matcher(line);
            while (m.find())
                System.out.println(m.group(2));
            line = br.readLine();
        }