我想在一个网站上看到所有链接。我们假设网站是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()));
答案 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();
}