如何在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树。
看看这个问题:
我用的答案是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
- 为什么HttpServletRequest.getRemoteAddr()在Java servlet中不起作用?
- 用Java运行JavaScript
- 服务器 – 客户端推/拉连接如何工作?
- 如何在Windows 7中将URL参数从Java传递到本地HTML文件?
- Java Applet:调用JavaScript – JSObject.getWindow(this)返回null
- 如何使用Spring Security自定义登录页面?
- html文件中的Thymeleaf命名空间在Netbeans中显示错误 – 如何通过HTML检查?
- 使用Jasper Report导出包含嵌入图像的单个HTML
- 如何在使用OWASP Java HTML Sanitizer清理html时允许嵌入的图像