`
liuxiang822
  • 浏览: 46975 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

初试htmlCleaner结合Xpath

 
阅读更多
//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']");
	}
}
 
分享到:
评论

相关推荐

    Sax解析结合Xpath的用法

    NULL 博文链接:https://xuehaipeng.iteye.com/blog/675904

    Dom4j结合XPath解析XML文件路径表达式

    XML节点访问的路径表达式【相对路径】和【绝对路径】的匹配原则

    Xpath生成器,自动生成XPATH,C#版

    Xpath生成器,自动生成可用的Xpath

    XpathDemo.zip

    现在常用的网页解析工具有:Jsoup,JsoupXpath,HtmlCleaner。 jsoup 是一款Java 的XML、HTML解析器,可直接解析某个URL地址、HTML文本内容和已经存在的文件。 JsoupXPath是基于Jsoup的拓展,使用路径的形式解析XML...

    xpath定位,xpath定位,xpath定位

    Selenium xpath,

    xpath-helper.zip

    xpath-helper

    htmlcleaner使用方法及xpath语法初探

    HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档

    经典xpath教材打包

    经典xpath教材打包, XPath是W3C定义的语言和正式的W3C推荐的语言,W3C拥有XML Path Language (XPath) Version 1.0规范。XPath诞生于1999年,作为对XSLT和XPointer语言的补充,但近来已成为流行的独立语言,因为单个...

    Xpath指南XPATH实例

    网上找的很好的XPATH指南,里面包含了22个实用例子,看完后,XPATH就懂了。

    IE下获取XPATH小工具源码_xpath_

    C#小工具箱 IE下获取XPATH小工具源码

    XPath教程(描述XPath的用法)

    XPath:描述了XPath的用法,XPath多应用于XML文件的解析,这是一个非常棒的文档!

    JsoupXpath

    整理JsoupXpath( https://github.com/zhegexiaohuozi/JsoupXpath)是一款纯Java开发的使用xpath解析提取html内容的解析器,xpath语法分析与执行完全独立,html的DOM树生成借助Jsoup,故命名为JsoupXpath. 为了在java...

    xpath-helper for MAC

    Xpath helper 2.0.2,适用于MAC版, 提供的了压缩包,下载后,解压缩-打开chrome-&gt;更多工具-&gt;扩展程序-&gt;加载已经解压的扩展程序-&gt;找到解压的文件夹选中,此时会发现地址栏后面多了一个“X”的图标,此时F12,点击...

    Xpath生成器,自动生成可用的Xpath。

    Xpath生成器,可以通过输入的文件,进行匹配,生成全部可用的Xpath,犹豫HTML中部分标签允许无结束,如:("LINK" ,"META","SCRIPT","IMG" ,"INPUT", "FORM")故已经被忽略,如有朋友发现其中有问题,请告诉我哦...

    XPath教程

    介绍XSL语法中Xpath的使用方法

    XPath jar

    XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 因此,对 XPath 的理解是很多...

    XPath注入漏洞利用工具XPath-XCat.zip

    XCat是一个命令行程序,用于辅助XPath注入漏洞的利用。XCat使用Python编写并开放源代码。XCat正常使用需要python的SimpleXMLWriter模块。 标签:XPath

    谷歌浏览器XPath2.0插件

    XPath Helper插件是一款可以安装到谷歌浏览器上使用支持所有chrome内核浏览器的爬虫网页解析工具,使用XPath Helper可以让你轻松获取HTML元素的xPath,不用再手动获取捕捉。

    Xpath详解.pdf

    XPath 详解 XPath(XML Path Language)是一种基于 XML 的查询语言,用于在 XML 文档中选取节点或者节点集。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中...

    【学习 XPath】.pdf

    XPath 教程是一个系统的学习资源,它包括 XPath 简介、XPath 节点、XPath 语法、XPath 轴、XPath 运算符、XPath 函数、XPath 实例等内容。通过学习 XPath 教程,您将掌握 XPath 的基础知识和应用技能。 因此,XPath...

Global site tag (gtag.js) - Google Analytics