【问题标题】:Extracting links from HTML从 HTML 中提取链接
【发布时间】:2012-04-04 13:39:13
【问题描述】:

我正在尝试从 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">

【问题讨论】:

  • 我会将强制性的link 发布到一个非常著名的答案,该答案不鼓励使用正则表达式解析 HTML。
  • 巧合的是,我现在戴着shirt,上面有独角兽形状的史诗帖子的摘录:)

标签: java regex html-parsing


【解决方案1】:

使用正则表达式解析 HTML 不必要地过于复杂。正则表达式是不适合这项工作的工具。只需使用普通的 HTML 解析器,如 Jsoup。它允许您通过普通的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"));
}

【讨论】:

  • 如何将jsoup导入我的JSP
  • 只需将 JAR 文件放到 /WEB-INF/lib 文件夹中,就可以让它参与到类路径中。顺便说一句,Java 代码 belongs 在 Java 类(如 servlet)中,而不是在 JSP 文件中。
  • 我无法将 jsoup 导入到我的 JSP 中,它正在返回我找不到 Document、Elements 的符号...
  • 当它不在运行时类路径中时确实会发生这种情况。如前所述,以通常的方式将 JAR 文件放入/WEB-INF/lib。然后,您可以像其他所有类一样将其导入您的 JSP 文件(或更简单的 Java 类)中。
  • 你能给我导入的代码吗?我想像这样导入: org 出现错误
猜你喜欢
  • 2019-11-16
  • 2012-04-10
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2011-06-04
相关资源
最近更新 更多