如何在HTML文件中搜索某些标签?

时间:2009-03-23 10:01:47

标签: java html html-parsing

我在Java方面遇到了一些问题。 如何执行此操作:我想在HTML文件中搜索标记href和src,然后我想获取与该标记关联的URL。

最好的方法是什么?

感谢您的帮助。 最好的问候。

7 个答案:

答案 0 :(得分:2)

您想将此作为一次性编辑任务,还是需要系统(即代码)实现?在第二种情况下,找到Java HTML解析器实现并遍历DOM树。

http://java-source.net/open-source/html-parsers

答案 1 :(得分:1)

这是我用来完成你想要做的事情的代码,但首先让我给你一些提示。

如果您在Java Swing环境中,请确保使用javax.swing.text.html和javax.swing.text.html.parser包中的方法。不幸的是,它们主要用于JEditorPane,但我仍然强烈建议你看一下这些。

Java 6 API中有一个名为HTML.Tag的类,用于标识HTML开始和结束标记,然后您可以使用这些标记来确定您希望程序遵循的链接的位置。{{3 }}

当我编写一个与此非常类似的程序时,我使用了3种主要方法:

public void handleStartTag(HTML.Tag t, MUtableAttributeSet atts, int pos)
public void handleEndTag(HTML.Tag t, int pos)
public void handleText(char[] text, int pos)

如果您需要有关如何编写这些方法的更多帮助,可以给我发消息,但基本上,您正在寻找初始标记和结束标记,然后您将确定该网址,然后您可以继续下一步,跟随网址。

要关注网址,我建议您使用JEditorPane对象。 javax.swing.event.HyperlinkListener接口只定义了一个方法,hyperlinkUpdate(HyperlinkEvent e),您可以将url传入,然后在JEditorPane对象上调用.setPage(evt.getURL())。然后,这将使用新页面更新窗格,并允许您再次启动该过程。

如果您有任何问题,请告诉我,请将此答案投票!

答案 2 :(得分:0)

如果您的文件是 xhtml文档,则它是标准的xml文档,解析它的麻烦方法是使用jdom。 JDom非常强大,易于使用和理解。

如果您有html文档,可以尝试htmlparser,尤其是课程LinkTag

答案 3 :(得分:0)

Take a look at this question:

我使用的答案是JTidy

答案 4 :(得分:0)

您可以使用Rhino,然后加载html文件。加载后,您可以使用getElementBy转到任何节点或获取值。

答案 5 :(得分:0)

我会看一下tagsoup,它将从任何HTML文档构建一个DOM树,即使是最不合规的文档也是如此。

然后使用XPath并迭代返回的NodeList:

//一个

// IMG

答案 6 :(得分:0)

我已成功使用Neko HTML Parser进行此类操作(屏幕抓取)。

import org.cyberneko.html.parsers.DOMParser;
import org.w3c.dom.Node;

public class TestParser {

     public static void main(String[] argv) throws Exception {
          DOMParser parser = new DOMParser();
          for (int i = 0; i