`
gcgmh
  • 浏览: 354982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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());   
//        }   
    




XPath文档:http://www.w3school.com.cn/xpath/xpath_syntax.asp
分享到:
评论

相关推荐

    Sax解析结合Xpath的用法

    2. 在`startElement`方法中,我们可以使用XPath表达式来判断当前元素是否是我们关心的。如果匹配,我们可以进行相应的处理。 3. 由于SAX不支持直接的XPath查询,我们需要先将元素的信息存储起来,比如在解析过程中...

    dom4j中XPath用法

    **DOM4J中XPath用法详解** XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来方便地选取XML文档中的节点,包括元素、属性、文本等。DOM4J是一个非常流行的Java XML API,它提供了一...

    XPath教程(描述XPath的用法)

    - 在XPath中,可以使用路径表达式来选取XML文档中的元素、属性、文本等节点。这些表达式由斜杠 `/` 和星号 `*` 等符号构成,用于描述节点的位置关系。 2. **路径表达式**: - `/` 表示绝对路径,用于从根节点开始...

    XPath 使用方法

    ### XPath 使用方法详解 #### 一、XPath简介 XPath 是一门专门用于在 XML 文档中查找信息的语言。它能够帮助用户有效地浏览 XML 文档结构,并从中抽取特定数据。XPath 的重要性不仅体现在其本身的功能上,还在于它...

    xpath-helper 插件及使用方法

    3. **正则表达式辅助**:虽然XPath主要用于选取XML或HTML节点,但XPath Helper可能也支持结合正则表达式进行数据提取,这在处理复杂或不规则的数据格式时尤其有用。 4. **消息中间件集成**:在大型项目中,数据抓取...

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

    本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...

    scrapy中xpath示例用法

    在这个"scrapy-xpath-示例用法.py"文件中,我们可以期待看到一系列关于如何在Scrapy项目中使用XPath的实例。 1. **XPath基本语法** - `/`:根节点选择器,表示从文档根部开始。 - `//`:任意深度选择器,用于选取...

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    本文将深入探讨JDOM库中XPath的相关方法——`selectNodes()`和`selectSingleNode()`,以及它们的用法。 首先,我们来理解JDOM的基本概念。JDOM是Java Document Object Model的缩写,它提供了一种基于Java的API来...

    XPath基础用法详解

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、...在实际项目中,XPath与其他XML技术(如XSLT、XQuery)结合使用,可以实现更为复杂的数据操作和转换。

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

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它是W3C组织制定的一种标准查询...C#作为.NET框架的主要编程语言,提供了丰富的XML处理支持,结合这个XPath生成器,可以更好地进行XML相关的开发工作。

    XPathHelper_2.0.2.zip

    XPathHelper_2.0.2.zip 是一个包含XPath Helper Chrome扩展程序的压缩文件,版本为2.0.2。XPath Helper是一款非常实用的...熟悉XPath的使用,结合XPath Helper这样的工具,可以帮助开发者更有效地处理XML和HTML数据。

    IE下获取XPATH小工具源码_xpath_

    C#中,可以利用`XmlNode.SelectSingleNode()`方法找到指定的XPath路径,或者`XmlNode.SelectNodes()`方法获取所有匹配的节点。 3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成...

    xpath-helper.zip

    总的来说,XPath和lxml是Python爬虫开发中的关键工具,它们的结合使用能够有效地解析和抽取网页数据。而"xpath-helper.crx"这个扩展程序则是开发过程中的一大利器,它提高了开发者的工作效率,降低了调试难度,使得...

    xpathDemo.zip

    在DEMO中,开发者可能已经提供了详细的注释,解释了代码的工作原理和XPath表达式的使用方法。 总结来说,"xpathDemo.zip"是一个关于使用JDOM和XPath处理XML文档的实例。通过学习和运行这个DEMO,你可以深入了解如何...

    Selenium WebDriver中使用By.Xpath快速定位页面元素

    Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个...同时,By.Xpath 也可以与其他定位方法结合使用,例如 By.Id、By.Name、By.ClassName 等,从而实现更加灵活和强大的自动化测试。

    XPath Helpe4.zip

    XPath Helper的使用方法包括: 1. 安装与启用:首先,用户需要将"2019chromecj.com.crx"文件拖拽到Chrome浏览器的扩展管理页面进行安装。安装完成后,会在浏览器的右上角看到XPath Helper的图标,点击即可启用。 2...

    XPath教程

    在XSL中,XPath常与模板匹配结合使用,通过选取特定的XML节点并应用样式规则进行转换。例如,以下XSL模板使用XPath选取所有“price”元素,并将其格式化: ```xml 价格: ``` 此外,XPath还可以在其他XML...

    谷歌浏览器XPath2.0插件

    XPath Helper是一款专为谷歌浏览器设计的插件,它极大地简化了网页抓取和解析过程,尤其对于使用XPath语法来定位HTML元素的用户来说,这款工具是不可或缺的助手。XPath(XML Path Language)是一种在XML文档中查找...

    XPath Helper版本2.0.2

    总的来说,XPath Helper 2.0.2是一个强大的辅助工具,它为处理网页内容提供了一个直观且高效的途径,尤其对于那些需要频繁使用XPath的用户来说,这款插件无疑是提高工作效率的一大利器。无论是进行网页开发、测试...

    Xpath指南XPATH实例

    通过上述知识点,结合提供的实例,读者可以逐步掌握XPath的使用,实现高效地在XML文档中导航和提取数据。在“XPath指南”的22个实例中,每个实例都将涵盖上述的一个或多个知识点,通过实践加深理解。这些实例涵盖了...

Global site tag (gtag.js) - Google Analytics