当前位置: 首页 > news >正文

HtmlCleanner结合xpath用法(转载)

   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

 

转载于:https://www.cnblogs.com/zhanggl/p/4800349.html

相关文章:

  • KVO的简单使用
  • P1297: [SCOI2009]迷路
  • POJ C++程序设计 编程题#3:计算数列平方和
  • Css_Backgroud-position(背景图片)定位问题详解
  • Android剪切板(ClipboardManager) 复制文本
  • HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值...
  • html中获取图片的真实尺寸
  • mysql 小知识点备忘(一)
  • 双向BFS—NOIP2002 字串变换
  • NetworkStateReceiver的简单应用
  • virtual memory exhausted: Cannot allocate memory
  • 中国经济初识
  • Thinkpad X240修改bios引导方式
  • cocos2d-x 3.2 2048——第六部分(最后一章)
  • ubuntu学习笔记--不断更新中
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Android 控件背景颜色处理
  • CSS实用技巧
  • es6要点
  • JavaScript-Array类型
  • MySQL几个简单SQL的优化
  • Theano - 导数
  • vagrant 添加本地 box 安装 laravel homestead
  • 高程读书笔记 第六章 面向对象程序设计
  • 前嗅ForeSpider教程:创建模板
  • 写给高年级小学生看的《Bash 指南》
  • 延迟脚本的方式
  • 一、python与pycharm的安装
  • Spring第一个helloWorld
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​queue --- 一个同步的队列类​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #每天一道面试题# 什么是MySQL的回表查询
  • (12)Hive调优——count distinct去重优化
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (力扣)1314.矩阵区域和
  • (六)vue-router+UI组件库
  • (四)Linux Shell编程——输入输出重定向
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四)图像的%2线性拉伸
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)EXC_BREAKPOINT僵尸错误
  • ../depcomp: line 571: exec: g++: not found
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 事件模型教程(二)
  • .NET 指南:抽象化实现的基类
  • ??myeclipse+tomcat
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ IO.File ] FileSystemWatcher
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [ 数据结构 - C++]红黑树RBTree
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [dts]Device Tree机制
  • [Git 1]基本操作与协同开发