import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.net.URL;
import org.cyberneko.html.parsers.DOMParser;
import org.htmlparser.tags.Span;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class JavaTest {
public static String TextExtractor(Node root){
//若是文本节点的话,直接返回
if (root.getNodeType() == Node.TEXT_NODE) {
return "";
}
if(root.getNodeType() == Node.ELEMENT_NODE) {
Element elmt = (Element) root;
//抛弃脚本
if (elmt.getTagName().equals("STYLE")
|| elmt.getTagName().equals("SCRIPT"))
return "";
NodeList children = elmt.getChildNodes();
StringBuilder text = new StringBuilder();
if (elmt.getTagName().equals("SPAN")) {
if (elmt.hasAttribute("id")) {
// System.out.println(elmt.getAttribute("id"));
if (elmt.getAttribute("id").equals("countOfPrd")) {
return children.item(0).getNextSibling().getNextSibling().getNextSibling().getFirstChild().getNodeValue();
}
}
}
for (int i = 0; i < children.getLength(); i++) {
text.append(TextExtractor(children.item(i)));
}
return text.toString();
}
//对其它类型的节点,返回空值
return "";
}
public static void main(String[] args) throws Exception{
//生成html parser
DOMParser parser = new DOMParser();
//设置网页的默认编码
parser.setProperty(
"http://cyberneko.org/html/properties/default-encoding",
"utf-8");
//input file
URL a = new URL("http://www.suning.cn/webapp/wcs/stores/servlet/prd_10052_10051_-7_9173_196583_.html");
BufferedReader in = new BufferedReader(new InputStreamReader(a.openStream()));
//BufferedReader in = new BufferedReader(new FileReader("input.htm"));
parser.parse(new InputSource(in));
Document doc = parser.getDocument();
//获得body节点,以此为根,计算其文本内容
Node body = doc.getElementsByTagName("BODY").item(0);
System.out.println(TextExtractor(body));
}
}
//该段代码是用来解析抓取各大网站的价格,来智能化定价。实现价格战的目的赢得用户,不懂或更多探究QQ526151410
分享到:
相关推荐
在实际应用中,NekoHtml常用于数据抓取、网页解析或者网页自动化测试等场景。它的灵活性和对不规则HTML的容忍度使得它在处理非标准的网页时具有一定的优势。然而,由于其主要是针对HTML4设计的,对于HTML5的一些新...
《NekoHtml解析内容时需要注意的地方》 在深入探讨NekoHtml解析内容的注意事项之前,首先需要理解NekoHtml是什么。NekoHtml是一款开源的HTML解析器,它由Apache Software Foundation旗下的Xerces项目开发,主要用于...
NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能投扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的...
`Neko.java`可能是另一个类,它封装了NekoHTML解析器的主要逻辑,提供了更方便的API供`Caipiao.java`调用。 在`README.txt`中,作者很可能详细解释了如何运行这些示例程序,包括必要的依赖和步骤。如果你遇到任何...
NekoHTML是一个Java语言的 HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档 过程中常...
在Java中解析HTML时,一个常用的库是NekoHTML,它是一个开源项目,主要用于构建和解析不完整的、错误的HTML文档。本篇文章将深入探讨NekoHTML的工作原理以及如何在Java中使用它。 NekoHTML是由Apache Software ...
NekoHTML是一个开源的Java库,主要用于解析HTML文档并将其转换为标准的XML DOM(文档对象模型)。这个库是Xerces项目的一部分,由Apache软件基金会维护。NekoHTML特别适用于处理不规范或非标准的HTML,因为它可以...
NekoHTML 学习笔记 NekoHTML 是一个简单的 HTML 扫描器和标签补偿器,使得程序能解析 HTML 文档并用标准的 XML 接口来访问其中的信息。这个解析器能投扫描 HTML 文件并“修正”许多作者(人或机器)在编写 HTML ...
NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能投扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的...
在使用`nekohtml`时,开发人员可以利用这些帮助类来实现以下功能: 1. **解析不规范的HTML**:由于`nekohtml`旨在处理非标准的HTML,它能容忍许多在正规XML中会被视为错误的语法,如未闭合的标签、缺失的属性等。 ...
NekoHTML是一个开源的、轻量级的Java库,它主要用作HTML解析器和XML解析器。在处理不规则或非标准格式的HTML时,NekoHTML特别有用,因为它可以将这些不规则的HTML文档转换成结构化的XML文档,从而使得其他XML工具...
NekoHTML技术预研说明,如何进行HTML页面解析,网页信息抽取
NekoHTML是一个开源的Java库,主要用于解析HTML和XML文档,尤其在处理不规范或半结构化的HTML时...通过学习和使用NekoHTML,开发者可以提高解析效率,确保解析结果的准确性和一致性,同时增强系统的安全性和可扩展性。
其次,如果遇到特定的解析问题或者需要扩展nekoHtml的功能,可以直接修改源码来满足需求。最后,源码可以帮助开发者快速定位并修复可能遇到的bug,提高应用的稳定性。 在使用nekoHtml时,开发者可以通过Java API...
**nekohtml-1.9.14源码及jar包**是针对XML和HTML解析的一个开源库,广泛应用于Java开发环境中。这个压缩包包含了nekohtml的核心组件,包括了jar包和源码两个部分,方便开发者进行学习、调试以及自定义扩展。 **...
NekoHTML是一个开源的Java库,主要用于解析和构建XML和HTML文档。它是Xerces2 Java解析器的一部分,由Apache软件基金会开发。NekoHTML的主要功能是将不规范的HTML源代码转换为标准的XML,使得开发者可以更容易地处理...
"nekohtml-1.9.7.zip" 是一个压缩包文件,其中包含了一个名为 "nekohtml-1.9.7" 的程序库。这个库主要用于处理HTML文档,为开发者提供了解析和构建HTML文档的功能。在IT行业中,处理HTML文档是网页开发、数据抓取、...
4. `xercesImpl.jar`: NeKoHTML依赖于Xerces Java XML解析器,这个jar包包含了Xerces的实现。 5. `xml-apis.jar`: 包含了XML API的接口定义,是Xerces和其他XML解析器的公共接口。 在使用NeKoHTML时,开发者需要将`...
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.jar 解析html的jar包 非常的实用