想爬取一个网页的生活数据使用,按照以前的方式是写正则来做了,但是面对页面经常变换的问题,而且有些正则不是那么一步到位就能写出,故希望能找到更合适的东西来解析html。
通过对比各种html的parser,最终选取了HtmlCleaner ,主要是他强大的支持xpath功能,以及对网页标签的容错性很好,api也很强大耐用。
htmlCleaner 官网
http://htmlcleaner.sourceforge.net/javause.php
Using XPATH and HTML Cleaner to parse HTML / XML
http://thinkandroid.wordpress.com/2010/01/05/using-xpath-and-html-cleaner-to-parse-html-xml/
xpath真是异常强大,这里给出参考文档
http://www.w3schools.com/XPath/default.asp
xpath有时写起来也是比较麻烦,所以找到了一个firefox的扩展可以很好的自动提取xpath
FirePath is a Firebug extension that adds a development tool to edit,
inspect and generate XPath 1.0 expressions, CSS 3 selectors and JQuery
selectors (Sizzle selector engine).
https://addons.mozilla.org/en-US/firefox/addon/firepath/
附:looking-for-a-java-html-parser-or-groovy
http://www.wavyx.net/2009/01/13/looking-for-a-java-html-parser-or-groovy/
分享到:
相关推荐
`Html_Parser` 应该是一个用Java编写的库,因为标签中提到了"java_parser"。在Java中,解析HTML主要有两种常见方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个HTML文档加载到内存中,...
JsoupXpath 是一款纯Java开发的使用xpath解析提取html数据的解析器,针对html解析完全重新实现了W3C XPATH 1.0标准语法,xpath的Lexer和Parser基于Antlr4构建,html的DOM树生成采用Jsoup,故命名为JsoupXpath. ...
JsoupXpath 是一款纯Java开发的使用xpath解析提取html数据的解析器,针对html解析完整实现了W3C XPATH 1.0标准语法,xpath的Lexer和Parser基于Antlr4构建,html的DOM树生成采用Jsoup,故命名为JsoupXpath....
HTMLParser是一款用于Java开发的网页解析库,它允许开发者高效地提取和处理HTML文档中的数据。在Web开发中,尤其是在爬虫程序或者自动化测试中,HTMLParser是一个非常实用的工具。下面将详细介绍HTMLParser库的核心...
【Java HTML查询解析器】是用于处理HTML文档的解析工具,尤其在Web开发中,它可以帮助开发者从HTML页面中提取特定的数据,例如链接、文本、属性等。在Android和Java 7环境中,早期版本(v1)可能需要特定的适配以...
此外,HTMLParser还支持XPath表达式,可以更方便地定位到HTML文档中的特定元素。 总的来说,"Java中解析html的开源项目04"部分涉及了HTMLParser这个强大的库,它的DOM解析和事件驱动解析方式为我们处理HTML文档提供...
javax.swing.text.html.parser 提供默认的 HTML 解析器以及支持类。 javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax....
在 Java 中,XPath 可以通过 JAXP(Java API for XML Processing)实现,允许开发者在 Java 应用中执行 XPath 查询。类似的接口也存在于其他编程语言中,如 Python 的 lxml 库,JavaScript 的 DOMParser,或 .NET ...
HTMLParser是一款强大的Java库,专用于解析HTML文档并提取其中的数据。在网页内容抓取领域,HTMLParser扮演着至关重要的角色,它可以帮助开发者高效、准确地解析复杂的网页结构,从而获取所需的信息。以下是对...
- HTMLParser还可能支持CSS选择器、XPath表达式等高级查询方式,方便地定位HTML元素。 - 它通常提供API来修改HTML结构,如添加、删除或替换元素,这对于处理动态生成的内容非常有用。 总之,HTMLParser是一个强大...
在解析HTML后,我们可以通过遍历DOM树,使用XPath表达式或者直接查找特定标签来定位需要的数据。例如,如果我们想抓取所有`<a>`标签(链接)的`href`属性,可以这样操作: ```java List<String> links = new ...
javax.swing.text.html.parser 提供默认的 HTML 解析器以及支持类。 javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax....
一旦收到响应,我们通常会使用DOM、XPath或JSoup等工具解析HTML,找到图片链接。 在这个"java下载网站图片的爬虫代码"中,开发者可能使用了Jsoup库来解析HTML文档,因为它提供了简洁的API来提取和操作结构化数据。...
在Java中,org.xml.sax.Parser和ContentHandler接口用于实现SAX解析。 3. StAX(Streaming API for XML):StAX提供了一种推送和拉取相结合的解析方式,允许程序按需读取或写入XML。Java中的javax.xml.stream....
NekoHTML的核心类是`org.cyberneko.html.parsers.DOMParser`,它是基于Xerces的DOM解析器,它能够将HTML文档转化为标准的W3C Document对象,这使得我们可以使用XPath或CSS选择器来查询和操作HTML元素。在提供的`Neko...
javax.swing.text.html.parser 提供默认的 HTML 解析器以及支持类。 javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax....
javax.swing.text.html.parser javax.swing.text.rtf javax.swing.tree javax.swing.undo javax.transaction javax.transaction.xa javax.xml javax.xml.datatype javax.xml.namespace javax.xml.parsers ...
在给定的文件“基于JerichoHTMLParser的html信息抽取.pdf”中,作者王鸿伟探讨了如何利用Jericho HTML Parser这一Java库进行高效的HTML解析。 Jericho HTML Parser是一款强大的开源HTML解析器,它能够处理不规则和...
Java中的`org.xml.sax`包提供了SAX解析的相关类和接口,如`DefaultHandler`和`Parser`。 4. **JAXB(Java Architecture for XML Binding)**:JAXB允许将XML数据自动映射到Java对象,以及将Java对象转换为XML。这...
Java中使用`javax.xml.xpath.XPathFactory`和`javax.xml.xpath.XPath`接口执行XPath查询。XSLT(eXtensible Stylesheet Language Transformations)则用于转换XML文档,通过编写样式表文件,可以将源XML转换为目标...