【发布时间】:2010-10-14 22:34:02
【问题描述】:
我在使用 Java 时遇到了一点问题。 如何做到这一点:我想在 HTML 文件中搜索标签 href 和 src,然后我想获取与该标签关联的 URL。
最好的方法是什么?
感谢您的帮助。 最好的问候。
【问题讨论】:
标签: java html html-parsing
我在使用 Java 时遇到了一点问题。 如何做到这一点:我想在 HTML 文件中搜索标签 href 和 src,然后我想获取与该标签关联的 URL。
最好的方法是什么?
感谢您的帮助。 最好的问候。
【问题讨论】:
标签: java html html-parsing
我已经成功地将Neko HTML Parser 用于此类事情(屏幕抓取)。
导入 org.cyberneko.html.parsers.DOMParser; 导入 org.w3c.dom.Node; 公共类TestParser { 公共静态 void main(String[] argv) 抛出异常 { DOMParser 解析器 = 新的 DOMParser(); for (int i = 0; i【讨论】:
这是我用来完成您想做的事情的代码,但首先让我给您一些提示。
如果您在 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())。然后,这将使用新页面更新窗格,并允许您再次启动该过程。
如果您有任何问题,请给我留言,请投票给这个答案!
【讨论】:
【讨论】:
如果您的文件是 xhtml 文档,它是标准的 xml 文档,解析它的最糟糕的方法是使用 jdom。 JDom 非常强大,易于使用和理解。
如果你有一个 html 文档,你可以试试 htmlparser,尤其是 LinkTag 类。
【讨论】:
你可以使用Rhino,然后加载html文件。加载后,您可以使用 getElementBy 转到任何节点或获取值。
【讨论】:
【讨论】:
您希望将其作为一次性编辑任务执行,还是需要系统(即代码)实施?在第二种情况下,找到一个 Java HTML 解析器实现并遍历 DOM 树。
【讨论】: