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

我在Java方面遇到了一些问题。 怎么做:我想在HTML文件中搜索标签href和src,然后我想获得与该标签关联的URL。

最好的方法是什么?

谢谢您的帮助。 最好的祝福。

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

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

Java 6 API中有一个名为HTML.Tag的类,用于标识HTML开始和结束标记,然后您可以使用这些标记来确定您希望程序遵循的链接的位置。 http://java.sun.com/javase/6/docs/api/javax/swing/text/html/HTML.Tag.html

当我编写一个与此非常相似的程序时,我使用了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) 

如果您需要有关如何编写这些方法的更多帮助,您可以给我发消息,但基本上,您正在寻找一个初始标记和一个结束标记,然后从中您将识别出该url,然后您可以继续执行下一步,这是跟随url。

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

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

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

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

看看这个问题:

我用的答案是JTidy

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

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

如果你有一个html文档,你可以尝试htmlparser ,特别是LinkTag类。

我将看看tagsoup ,它将从任何HTML文档构建DOM树,甚至是最不符合要求的文档。

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

//一个

// IMG

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

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

公共类TestParser {

      public static void main(String [] argv)throws Exception {
           DOMParser解析器=新的DOMParser();
           for(int i = 0; i