从HTML中提取链接

时间:2012-03-20 03:06:53

标签: java regex html-parsing

我正在尝试从HTML中提取链接。我使用以下正则表达式

href=\"([^\"]*)\"

这是提取不必要的链接。如何编写正则表达式以仅提取class =“l”的链接,如

<a href="http://users.elite.net/runner/jennifers/hello.htm" class="l">
<a href="http://www.hellodesign.com/" class="l">
<a href="http://www.ipl.org/div/hello/" class="l">

1 个答案:

答案 0 :(得分:2)

使用正则表达式解析HTML不必要地过于复杂。正则表达式是这项工作的错误工具。只需使用像Jsoup这样的普通HTML解析器。它允许您按正常CSS selectors选择HTML元素。

Document document = Jsoup.parse(html);
Elements links = document.select("a.l"); // Select all <a class="l"> elements.

for (Element link : links) {
    System.out.println(link.absUrl("href"));
}