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
分享到:
相关推荐
2. 在`startElement`方法中,我们可以使用XPath表达式来判断当前元素是否是我们关心的。如果匹配,我们可以进行相应的处理。 3. 由于SAX不支持直接的XPath查询,我们需要先将元素的信息存储起来,比如在解析过程中...
**DOM4J中XPath用法详解** XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来方便地选取XML文档中的节点,包括元素、属性、文本等。DOM4J是一个非常流行的Java XML API,它提供了一...
- 在XPath中,可以使用路径表达式来选取XML文档中的元素、属性、文本等节点。这些表达式由斜杠 `/` 和星号 `*` 等符号构成,用于描述节点的位置关系。 2. **路径表达式**: - `/` 表示绝对路径,用于从根节点开始...
### XPath 使用方法详解 #### 一、XPath简介 XPath 是一门专门用于在 XML 文档中查找信息的语言。它能够帮助用户有效地浏览 XML 文档结构,并从中抽取特定数据。XPath 的重要性不仅体现在其本身的功能上,还在于它...
3. **正则表达式辅助**:虽然XPath主要用于选取XML或HTML节点,但XPath Helper可能也支持结合正则表达式进行数据提取,这在处理复杂或不规则的数据格式时尤其有用。 4. **消息中间件集成**:在大型项目中,数据抓取...
在这个"scrapy-xpath-示例用法.py"文件中,我们可以期待看到一系列关于如何在Scrapy项目中使用XPath的实例。 1. **XPath基本语法** - `/`:根节点选择器,表示从文档根部开始。 - `//`:任意深度选择器,用于选取...
本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...
本文将深入探讨JDOM库中XPath的相关方法——`selectNodes()`和`selectSingleNode()`,以及它们的用法。 首先,我们来理解JDOM的基本概念。JDOM是Java Document Object Model的缩写,它提供了一种基于Java的API来...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、...在实际项目中,XPath与其他XML技术(如XSLT、XQuery)结合使用,可以实现更为复杂的数据操作和转换。
XPath(XML Path Language)是一种在XML文档中查找信息的语言,它是W3C组织制定的一种标准查询...C#作为.NET框架的主要编程语言,提供了丰富的XML处理支持,结合这个XPath生成器,可以更好地进行XML相关的开发工作。
XPathHelper_2.0.2.zip 是一个包含XPath Helper Chrome扩展程序的压缩文件,版本为2.0.2。XPath Helper是一款非常实用的...熟悉XPath的使用,结合XPath Helper这样的工具,可以帮助开发者更有效地处理XML和HTML数据。
C#中,可以利用`XmlNode.SelectSingleNode()`方法找到指定的XPath路径,或者`XmlNode.SelectNodes()`方法获取所有匹配的节点。 3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成...
Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个...同时,By.Xpath 也可以与其他定位方法结合使用,例如 By.Id、By.Name、By.ClassName 等,从而实现更加灵活和强大的自动化测试。
总的来说,XPath和lxml是Python爬虫开发中的关键工具,它们的结合使用能够有效地解析和抽取网页数据。而"xpath-helper.crx"这个扩展程序则是开发过程中的一大利器,它提高了开发者的工作效率,降低了调试难度,使得...
在DEMO中,开发者可能已经提供了详细的注释,解释了代码的工作原理和XPath表达式的使用方法。 总结来说,"xpathDemo.zip"是一个关于使用JDOM和XPath处理XML文档的实例。通过学习和运行这个DEMO,你可以深入了解如何...
在XSL中,XPath常与模板匹配结合使用,通过选取特定的XML节点并应用样式规则进行转换。例如,以下XSL模板使用XPath选取所有“price”元素,并将其格式化: ```xml 价格: ``` 此外,XPath还可以在其他XML...
XPath Helper是一款专为谷歌浏览器设计的插件,它极大地简化了网页抓取和解析过程,尤其对于使用XPath语法来定位HTML元素的用户来说,这款工具是不可或缺的助手。XPath(XML Path Language)是一种在XML文档中查找...
通过上述知识点,结合提供的实例,读者可以逐步掌握XPath的使用,实现高效地在XML文档中导航和提取数据。在“XPath指南”的22个实例中,每个实例都将涵盖上述的一个或多个知识点,通过实践加深理解。这些实例涵盖了...
XPath Helper的使用方法包括: 1. 安装与启用:首先,用户需要将"2019chromecj.com.crx"文件拖拽到Chrome浏览器的扩展管理页面进行安装。安装完成后,会在浏览器的右上角看到XPath Helper的图标,点击即可启用。 2...
这个XPath教程很可能是详细解释XPath语法、函数和用法的指南,对于学习和掌握XPath非常有帮助。它会涵盖基本的路径表达式、轴、节点测试、函数、变量引用等概念,以及如何在实际项目中应用XPath。 XPath的使用场景...