`
gcgmh
  • 浏览: 354263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nekohtml的2个小例子

阅读更多
//获取网页里面的keywords和description
	public static void main(String[] argv) throws Exception {
		
		BufferedReader in = new BufferedReader(new FileReader("d:/163.html"));
		DOMParser parser = new DOMParser();
		 parser.setProperty(
			     "http://cyberneko.org/html/properties/default-encoding",
			     "gb2312");
		parser.parse(new InputSource(in));
		
		Document doc = parser.getDocument();
		NodeList list = doc.getElementsByTagName("META");
		for(int i = 0, n = list.getLength(); i < n ; i++){
			Element e = (Element) list.item(i);
			if(e.getAttribute("name").equalsIgnoreCase("keywords")){
				String keywords = e.getAttribute("content");
				System.out.println("keywords: " + keywords);
			}
			if(e.getAttribute("name").equalsIgnoreCase("description")){
				String description = e.getAttribute("content");
				System.out.println(description);
			}
		}
	} 

==========================================================================
//2、test使用DOMFragmentParser,提取所有正文,由于没有过滤一些没用的标签,所以会有没用的信息打印,这个可以再事先过滤一下。

	public static void main(String[] argv) throws Exception {
		DOMFragmentParser parser = new DOMFragmentParser();
		HTMLDocument document = new HTMLDocumentImpl();
		DocumentFragment fragment = document.createDocumentFragment();
		parser.parse("http://sports.sina.com.cn/f1/2009-09-21/20104599271.shtml", fragment);
		print(fragment, "");
	} 

	/** Prints a node's class name. */
	public static void print(Node node, String indent) {
		
//		System.out.println(indent + node.getClass().getName());
//		System.out.println(node.getNodeType());
		
		if (node.getNodeType() == Node.TEXT_NODE) {
			System.out.println(indent + node.getNodeValue());
		}
		Node child = node.getFirstChild();
		while (child != null) {
			print(child, indent + " ");
			child = child.getNextSibling();
		}
	} 

} 
分享到:
评论

相关推荐

    NekoHTML

    NekoHTML是一个开源的Java库,主要用于解析HTML文档并将其转换为标准的XML DOM(文档对象模型)。这个库是Xerces项目的一部分,由Apache软件基金会维护。NekoHTML特别适用于处理不规范或非标准的HTML,因为它可以...

    html解析例子,用nekohtml写的

    学习这个例子可以帮助你理解如何在实际项目中处理HTML解析,尤其是在处理网页抓取或自动化测试时。此外,掌握NekoHTML的使用还能增强你在处理非标准HTML时的灵活性和效率。记住,理解和实践代码是最好的学习方式,...

    NekoHtml解析 html 文件

    NekoHtml是一个开源的、Java实现的HTML解析器,它主要被设计用来处理不规则的、现实世界中的HTML文档。这个解析器的核心是NekoParser,它能够将HTML源代码转化为DOM(Document Object Model)结构,使得开发者可以...

    Java解析HTML之NekoHTML

    在这个例子中,`TagNameFilter`是内置的过滤器,用于筛选指定标签名的节点。运行这个程序,它将打印出所有`&lt;a&gt;`标签的`href`属性。 NekoHTML虽然在处理HTML解析方面表现出色,但它并不支持CSS选择器,对于复杂的...

    nekohtml-1.9.13.zip

    这个"nekohtml-1.9.13.zip"压缩包包含的是NekoHTML的1.9.13版本,这是一个稳定且广泛使用的版本。 NekoHTML的核心是两个关键类:`org.cyberneko.html.parsers.DOMParser`和`net.sourceforge.nekodoc.NekoDoc`。`DOM...

    NekoHTML学习笔记.doc

    二、NekoHTML 的特点 NekoHTML 的主要特点是能够“修正”许多 HTML 文档中的错误,如缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元素标签。 三、NekoHTML 的使用方法 使用 NekoHTML 需要下载 ...

    nekohtml-1.9.15.zip

    NekoHTML is written using the Xerces Native Interface (XNI) that is the foundation of the Xerces2 implementation. This enables you to use the NekoHTML parser with existing XNI tools without ...

    NekoHTML技术

    NekoHTML技术预研说明,如何进行HTML页面解析,网页信息抽取

    NekoHTML的相关用法以及j代码包

    2. 性能方面,NekoHTML适用于小规模的HTML处理,对于大规模的网页抓取或处理,可能需要考虑其他高性能的解决方案。 3. 在处理JavaScript生成的动态内容时,NekoHTML无能为力,因为它是静态HTML解析器,无法执行...

    Nekohtml_0.9.5(Java).rar_Nekohtml_0.9.5_java 搜索引擎_nekoht_nekohtm

    NekoHTML是一个开源的Java库,主要用于解析HTML和XML文档,尤其在处理不规范或半结构化的HTML时表现优秀。这个库由Daniel C. Betchkal和Kurt Heuts创建,版本为0.9.5,是搜索引擎开发中的一个重要工具。NekoHTML的...

    NeKoHTML 1.9.21

    NeKoHTML的`nekohtml-1.9.21`压缩包包含了该版本的全部Java类和资源文件,主要包含以下几个部分: 1. `META-INF`: 存放关于jar包的元数据,如`MANIFEST.MF`文件。 2. `org/cyberneko/html/`: NeKoHTML的主要代码库...

    NekoHTML学习笔记.rar

    NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。...NekoHTML的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。

    nekohtml-1.9.14源码及jar包

    `nekohtml-1.9.14.jar`是nekohtml的二进制库,包含了所有编译好的类和资源,可以直接在Java项目中作为依赖使用。开发者只需将此jar包添加到项目的类路径中,就可以调用nekohtml提供的API来解析HTML或XHTML文档。例如...

    nekohtml解析器

    NekoHTML是一个Java语言的 HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档 过程中常...

    nekohtml 帮助类

    2. **构建DOM树**:通过解析HTML或XML文档,`nekohtml`将内容转换为DOM结构,开发者可以使用`NodeHelper`来访问和操作这个结构,比如查找特定元素、修改内容或者遍历整个文档。 3. **错误处理**:`NekoHelper`可能...

    NekoHtml 解析内容时需要注意的地方

    Xalan.jar和XercesImpl.jar是与NekoHtml密切相关的两个库文件。Xalan是一个XSLT处理器,用于将XML文档转换为其他格式,如HTML或PDF。而XercesImpl.jar则是Xerces项目的XML解析器实现,它提供了解析XML文档的基础功能...

    nekohtml-1.9.7.zip

    "nekohtml-1.9.7.zip" 是一个压缩包文件,其中包含了一个名为 "nekohtml-1.9.7" 的程序库。这个库主要用于处理HTML文档,为开发者提供了解析和构建HTML文档的功能。在IT行业中,处理HTML文档是网页开发、数据抓取、...

    nekohtml+dom4j

    在这个组合中,nekohtml扮演着核心角色,而dom4j则提供了强大的DOM(Document Object Model)操作能力,同时支持XPath查询语言。 nekohtml是一个开源的Java库,它的主要功能是对不规范的HTML进行清理和补全,将其...

    nekohtml包能够解析HTML文件

    NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能投扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的...

    nekoHtml 1.9.19 加 source 源码 html分析jar

    这个库是Xerces2 Java的一部分,但也可以独立使用。版本1.9.19是它的一个稳定版本,包含了源码,使得开发者能够深入理解其内部工作原理,进行自定义修改或调试。 HTML分析在软件开发中扮演着关键角色,尤其是在网页...

Global site tag (gtag.js) - Google Analytics