HtmlCleaner cleaner = new HtmlCleaner();     

      TagNode node = cleaner.clean(new URL("http://finance.sina.com.cn/money/nmetal/20091209/10157077895.shtml"));
//按tag取.
Object[] ns = node.getElementsByName("title", true); //标题 if(ns.length > 0) {
System.out.println("title="+((TagNode)ns[0]).getText());
}
// /html/body/div[2]/div[4]/div/div/div/div[2]/p
ns = node.evaluateXPath("//div[@class=\"blkContainerSblkCon\"]/p"); //选取class为指定blkContainerSblkCon的div下面的所有p标签
for (int i = 0; i < ns.length; i++) {
String in = cleaner.getInnerHtml((TagNode)ns[i]);
System.out.println("<p>"+in + "</p>");
}
String in = cleaner.getInnerHtml((TagNode)ns[0]);
System.out.println(in); System.out.println(((TagNode)ns[0]).getText());

  

   HtmlCleaner cleaner = new HtmlCleaner();
String url = "http://finance.sina.com.cn/nmetal/hjfx.html";
URL _url = new URL(url);
TagNode node = cleaner.clean(_url); //按tag取.
Object[] ns = node.getElementsByName("title", true); //标题 if(ns.length > 0) {
System.out.println("title="+((TagNode)ns[0]).getText());
} ns = node.evaluateXPath("//*[@class='Frame-Row3-01-C']/table[2]/tbody/tr/td/a"); //选取class为指定blkContainerSblkCon的div下面的所有p
for (int i = 0; i < ns.length; i++) { //取链接文本
// String in = cleaner.getInnerHtml((TagNode)ns[i]);
// System.out.println(in); //获取链接的
TagNode n = (TagNode) ns[i];
// System.out.println(n.getAttributeByName("href"));
System.out.println(new URL(_url,n.getAttributeByName("href")).toString());
}
// String in = cleaner.getInnerHtml((TagNode)ns[0]);
// System.out.println(in); // System.out.println(((TagNode)ns[0]).getText()); // System.out.println("ul/li:");
// //按xpath取
// ns = node.evaluateXPath("//div[@class='d_1']//li");
// for(Object on : ns) {
// TagNode n = (TagNode) on;
// System.out.println("\ttext="+n.getText());
// }
// System.out.println("a:");
// //按属性值取
// ns = node.getElementsByAttValue("name", "my_href", true, true);
// for(Object on : ns) {
// TagNode n = (TagNode) on;
// System.out.println("\thref="+n.getAttributeByName("href")+", text="+n.getText());
// }

本文转载于:http://gstarwd.iteye.com/blog/644502

xpath 参考教材:http://www.w3school.com.cn/xpath/xpath_syntax.asp

HtmlCleanner结合xpath用法(转载)的更多相关文章

  1. xPath 用法总结整理

    xPath 用法总结整理   一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML ...

  2. scrapy xpath用法

    一.实验环境 1.Windows7x64_SP1 2.anaconda3 + python3.7.3(anaconda集成,不需单独安装) 3.scrapy1.6.0 二.用法举例 1.开启scrap ...

  3. C# DataSet与DataTable的区别和用法 ---转载

    C# DataSet与DataTable的区别和用法 转载:https://www.cnblogs.com/liuyi-li/p/6340411.html DataSet是数据集,DataTable是 ...

  4. Xpath用法

    在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析 ...

  5. 移动端下拉刷新,iScroll.js用法(转载)

    本文转载自: iScroll.js 用法参考 (share)

  6. 扩展视图之xpath用法

    在视图扩展中,需要定位扩展字段需要显示的位置,通过xpath来实现定位 odoo 视图函数 在整个项目文件中,结构并不是十分明显,虽然它也遵循MVC设计,类比django的MTV模式,各个模块区分的十 ...

  7. ES6 Promise 用法转载

    Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...

  8. Python re模块, xpath 用法

    1.re正则的用法总结 (1). ^ 表示以哪个字符为开头      eg:  '^g' 表示以g开头的字符串      . 表示任意字符 '^g.d'  表示以g开头第二个为任意字符,第三个为b的字 ...

  9. python---map 用法 [转载]

    map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 1.当seq只 ...

随机推荐

  1. vue2 开发环境部署 及 打包配置

    一.脚手架工具(vue2 的脚手架工具是 vue-cli) 1.脚手架工具的安装 参考  :  https://blog.csdn.net/wulala_hei/article/details/804 ...

  2. 排序算法(三)堆排序及有界堆排序Java实现及分析

    1.堆排序基数排序适用于大小有界的东西,除了他之外,还有一种你可能遇到的其它专用排序算法:有界堆排序.如果你在处理非常大的数据集,你想要得到前 10 个或者前k个元素,其中k远小于n,它是很有用的. ...

  3. STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时

    前面我们讲过,因为在STM32上没有系统时间的接口,因此无法调用sleep函数,在本文中,笔者将利用滴答计时器实现精准延时. 查阅技术手册,滴答计时器依赖于一个SysTick_Type类型寄存器,定义 ...

  4. sublime text3配置c++环境和一些插件

    目录 Sublime Text 3是一个轻量级文本编辑器 下载sublime text 3: 安装MinGW 配置环境变量 win下行编译运行C/C++文件 Build你的C++System~ 快捷键 ...

  5. hexo next博客之无敌之舒服之美妙之轻松之发布博客(mweb,github自主开发插件)

    文章目录 **前言:** 具体用法 **mweb for mac** 注意 **github插件下载** 个人博客:https://mmmmmm.me 源码:https://github.com/da ...

  6. 截取url中的某个字符串后面的值

    获取到当前网址 var url = window.location.href; http://localhost:8080/exam_questions?type=3 //获取url中的参数 func ...

  7. Java 获取当前系统的操作系统类型

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/fangchao2011/article/d ...

  8. C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)

    C#操作Word 参考博文: C#操作word类文件 https://www.cnblogs.com/walking/p/3571068.html C#中的Office操作专栏(21) http:// ...

  9. vimtutor - Vim 教程

    总览 (SYNOPSIS) vimtutor 描述 (DESCRIPTION) Vimtutor 打开 Vim 教程. 它首先 考备 文件, 这样 就可以 在 不改变 原文件 的情况下 修改 当前文件 ...

  10. 笔记-Linux包管理命令

    一.apt, apt-get, dpkg命令 apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统.使用apt-ge ...