天道酬勤,学无止境

使用 Java 在网页上查找链接(Finding Links on a Webpage with Java)

问题

使用 Java 将网页的源代码存储在字符串中。 我想提取源代码中的所有网址并输出它们。 我对正则表达式之类的东西很糟糕,甚至不知道如何解决这个问题。 任何帮助将不胜感激。

回答1

不要使用正则表达式。 使用像 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"));
}
回答2

您可以使用 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();

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐