【发布时间】:2011-02-12 15:36:24
【问题描述】:
使用 Java 将网页的源代码存储在字符串中。我想提取源代码中的所有url并输出它们。我对正则表达式之类的东西很糟糕,甚至不知道如何解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
protip:不要用正则表达式解析html。
使用 Java 将网页的源代码存储在字符串中。我想提取源代码中的所有url并输出它们。我对正则表达式之类的东西很糟糕,甚至不知道如何解决这个问题。任何帮助将不胜感激。
【问题讨论】:
Don't use regex。使用parser,例如JSoup。
String html = "your html string";
Document document = Jsoup.parse(html); // Can also take an URL.
for (Element element : document.getElementsByTag("a")) {
System.out.println(element.attr("href"));
}
【讨论】:
你可以使用HtmlUnit,然后提取链接很简单:
WebClient wc = new WebClient();
URL url = new URL("http://www.oogly.co.uk/");
HtmlPage page = (HtmlPage) wc.getPage(url);
PrintWriter printWriter = new PrintWriter(new FileWriter(FILE_NAME));
List anchors = page.getAnchors();
【讨论】: