//import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.PrettyXmlSerializer;
import org.htmlcleaner.TagNode;
import org.htmlcleaner.XPatherException;
//import com.sun.xml.internal.txw2.output.XmlSerializer;
/**
* 数据抓取
*/
public class HtmlClean {
@SuppressWarnings("deprecation")
/**
* 数据抓取
*/
public void cleanHtml(String htmlurl, String xmlurl, String xpath) throws XPatherException {
try {
//将目标网址内容抓取下来存到本地的XML文件中(格式化)
//long start = System.currentTimeMillis();
HtmlCleaner cleaner = new HtmlCleaner();
CleanerProperties props = cleaner.getProperties();
props.setUseCdataForScriptAndStyle(true);
props.setRecognizeUnicodeChars(true);
props.setUseEmptyElementTags(true);
props.setAdvancedXmlEscape(true);
props.setTranslateSpecialEntities(true);
props.setBooleanAttributeValues("empty");
TagNode node = cleaner.clean(new URL(htmlurl));
// System.out.println(in);
//System.out.println(((TagNode) ns[0]).getText());
//System.out.println("vreme:" + (System.currentTimeMillis() - start));
new PrettyXmlSerializer(props).writeXmlToFile(node, xmlurl);//格式化保存
String result = new PrettyXmlSerializer(props).getXmlAsString(node);
//System.out.println("vreme:" + (System.currentTimeMillis() - start));
System.out.println("*********************************************************");
//
//
//TagNode Xmlnode = cleaner.clean(new URL(xmlurl));//从已经格式化的XML文件中取出所要的数据
TagNode Xmlnode = cleaner.clean(new String(result));//从已格式化的String中取出所要的数据
Object[] ns = Xmlnode.getElementsByName("title", true); // 标题
if (ns.length > 0) {
System.out.println("title=" + ((TagNode) ns[0]).getText());
}
ns = Xmlnode.evaluateXPath(xpath); // 选取class为指定dixian1的所有td标签
// for (int i = 0; i < ns.length; i++) {
// String in = cleaner.getInnerHtml((TagNode) ns[i]);
// System.out.println("<span>" + in + "</span>");
// }
System.out.println("*********************************************************");
String in = cleaner.getInnerHtml((TagNode) ns[0]);
for(int i=0 ;i<ns.length ;i++){
in = cleaner.getInnerHtml((TagNode) ns[i]);
System.out.println(in);
if((i+1)%8==0){
System.out.println("*********************************************************");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws XPatherException {
HtmlClean cleaner = new HtmlClean();
cleaner.cleanHtml("http://app.sipo.gov.cn:8080/sipo2008/searchfee/searchfee_action.jsp?sqh=01351345.1", "E://text/test.xml","//td[@class='dixian1']");
}
}
分享到:
相关推荐
NULL 博文链接:https://xuehaipeng.iteye.com/blog/675904
XML节点访问的路径表达式【相对路径】和【绝对路径】的匹配原则
Xpath生成器,自动生成可用的Xpath
现在常用的网页解析工具有:Jsoup,JsoupXpath,HtmlCleaner。 jsoup 是一款Java 的XML、HTML解析器,可直接解析某个URL地址、HTML文本内容和已经存在的文件。 JsoupXPath是基于Jsoup的拓展,使用路径的形式解析XML...
Selenium xpath,
xpath-helper
HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档
经典xpath教材打包, XPath是W3C定义的语言和正式的W3C推荐的语言,W3C拥有XML Path Language (XPath) Version 1.0规范。XPath诞生于1999年,作为对XSLT和XPointer语言的补充,但近来已成为流行的独立语言,因为单个...
网上找的很好的XPATH指南,里面包含了22个实用例子,看完后,XPATH就懂了。
C#小工具箱 IE下获取XPATH小工具源码
XPath:描述了XPath的用法,XPath多应用于XML文件的解析,这是一个非常棒的文档!
整理JsoupXpath( https://github.com/zhegexiaohuozi/JsoupXpath)是一款纯Java开发的使用xpath解析提取html内容的解析器,xpath语法分析与执行完全独立,html的DOM树生成借助Jsoup,故命名为JsoupXpath. 为了在java...
Xpath helper 2.0.2,适用于MAC版, 提供的了压缩包,下载后,解压缩-打开chrome->更多工具->扩展程序->加载已经解压的扩展程序->找到解压的文件夹选中,此时会发现地址栏后面多了一个“X”的图标,此时F12,点击...
Xpath生成器,可以通过输入的文件,进行匹配,生成全部可用的Xpath,犹豫HTML中部分标签允许无结束,如:("LINK" ,"META","SCRIPT","IMG" ,"INPUT", "FORM")故已经被忽略,如有朋友发现其中有问题,请告诉我哦...
介绍XSL语法中Xpath的使用方法
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 因此,对 XPath 的理解是很多...
XCat是一个命令行程序,用于辅助XPath注入漏洞的利用。XCat使用Python编写并开放源代码。XCat正常使用需要python的SimpleXMLWriter模块。 标签:XPath
XPath Helper插件是一款可以安装到谷歌浏览器上使用支持所有chrome内核浏览器的爬虫网页解析工具,使用XPath Helper可以让你轻松获取HTML元素的xPath,不用再手动获取捕捉。
XPath 详解 XPath(XML Path Language)是一种基于 XML 的查询语言,用于在 XML 文档中选取节点或者节点集。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中...
XPath 教程是一个系统的学习资源,它包括 XPath 简介、XPath 节点、XPath 语法、XPath 轴、XPath 运算符、XPath 函数、XPath 实例等内容。通过学习 XPath 教程,您将掌握 XPath 的基础知识和应用技能。 因此,XPath...