XPath语法入门:DOM4J学习者的实用指南
XPath是一种强大的查询语言,用于在XML和HTML文档中定位和选择特定的节点。对于DOM4J这样的XML处理库的初学者来说,理解XPath的基础语法至关重要。本文将深入介绍XPath的一些核心概念和常用表达式,帮助你快速上手。 1. **绝对路径与相对路径**: - `//`: 表示在整个文档中查找匹配的元素,不论其在层级结构中的位置。 - `/`: 绝对路径,从根节点开始寻找匹配的元素。 2. **基本节点选择**: - `./`: 当前节点,仅选中当前节点。 - `../`: 父节点,选取当前节点的直接父节点。 - `*`: 通配符,表示选择所有子元素。 3. **逻辑运算符**: - `or`: 用于组合两个或多个条件,至少有一个满足条件就返回匹配结果。 - `And`: 逻辑与,所有条件都必须满足才能返回匹配结果。 4. **数值和比较操作**: - `numberlast()`: 计算上下文中节点的数量,返回一个数字。 - `numberposition()`: 返回当前节点在上下文中的位置。 - `numbercount(node-set)`: 统计node-set中节点的数量。 - 数值比较操作符 (=, !=, <, >, >=, <=) 用于筛选节点属性值。 5. **字符串处理**: - `Text()`: 提取节点内的文本内容。 - `Node()`: 返回整个节点对象,包括标签和属性。 - `string(string object)` 和 `stringconcat(string, string, ...)` 分别用于转换对象为字符串并连接字符串。 - `starts-with(string, string)` 和 `contains(string, string)` 分别检查字符串是否以指定字符串开头或包含指定子串。 - `substring-before(string, string)` 和 `substring-after(string, string)` 分别提取子串,前者是第一个参数在第二个参数前的子串,后者是第一个参数在第二个参数后的子串。 通过学习这些基础语法,你可以编写出复杂且精确的XPath表达式,有效地遍历和筛选XML或HTML文档中的数据。在DOM4J或其他类似的库中,XPath的强大功能使得它成为数据抓取、数据分析和自动化测试中的核心工具。熟练掌握XPath能让你在处理大量XML数据时更加高效。
# 目标网站:www.hongniuziyuan.com # 爬取下来的数据格式 # 保存到记事本中 # 电影名字|导演|演员|评分|所属地区|播放地址 # 变形金刚|小斯蒂芬·卡普尔|安东尼·拉莫斯,多米尼克·菲什巴克,彼特·库伦,朗·普尔曼,彼特·丁拉|0.0|美国|https://hnzy.bfvvs.com/play/YervnY4e import requests from lxml import etree response = requests.get("https://www.hongniuziyuan.com/") html = response.content.decode() # 将二进制数据转换为文本数据 # response.text 文本数据 # print(html) # 将我们字符串转换为一个dom树 dom = etree.HTML(html) # 目的就是为了使用xpath语法去寻找我们的想要的标签 # xpath语法 # xs = dom.xpath('/html/body/div[3]/div[3]/ul/div/li/div/a/img') xs = dom.xpath('/html/body/div[4]/ul[2]/li/strong/span[1]/a') #元素:妖神记 第五季 [第328集完结] #xpath:/html/body/div[4]/ul[2]/li/strong/span[1]/a for s in xs:
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深入理解23种设计模式
- 制作与调试:声控开关电路详解
- 腾讯2008年软件开发笔试题解析
- WebService开发指南:从入门到精通
- 栈数据结构实现的密码设置算法
- 提升逻辑与英语能力:揭秘IBM笔试核心词汇及题型
- SOPC技术探索:理论与实践
- 计算图中节点介数中心性的函数
- 电子元器件详解:电阻、电容、电感与传感器
- MIT经典:统计自然语言处理基础
- CMD命令大全详解与实用指南
- 数据结构复习重点:逻辑结构与存储结构
- ACM算法必读书籍推荐:权威指南与实战解析
- Ubuntu命令行与终端:从Shell到rxvt-unicode
- 深入理解VC_MFC编程:窗口、类、消息处理与绘图
- AT89S52单片机实现的温湿度智能检测与控制系统