怎么使用xpath定位
时间: 2023-07-05 12:22:24 浏览: 169
python selenium xpath定位操作
使用 XPath 定位,需要先了解 XPath 的语法和表达式。XPath 是一种在 XML 文档中查找信息的语言,可以通过路径表达式来定位节点。
XPath 定位的基本语法如下:
```
//选择所有节点
nodename 选择指定节点名称
/ 从根节点开始选择
. 选择当前节点
.. 选择当前节点的父节点
@ 选择属性节点
```
XPath 定位的常用表达式如下:
```
//nodename 选择文档中所有的指定节点
//nodename[@attrname='attrvalue'] 选择文档中指定属性值的指定节点
//nodename[contains(text(),'searchtext')] 选择文档中包含指定文本的指定节点
//nodename[position()=1] 选择文档中第一个指定节点
//nodename[last()] 选择文档中最后一个指定节点
//nodename[@attrname] 选择文档中存在指定属性的指定节点
//nodename[@attrname='attrvalue'][@attrname2='attrvalue2'] 选择文档中同时满足两个属性条件的指定节点
```
在 Python 中使用 XPath 定位需要使用第三方库 `lxml`,具体使用方法如下:
```python
from lxml import etree
# 解析 HTML 文档
html = etree.parse('example.html', etree.HTMLParser())
# 使用 XPath 定位所有 <a> 标签
result = html.xpath('//a')
print(result)
# 使用 XPath 定位所有 <a> 标签的 href 属性
result = html.xpath('//a/@href')
print(result)
# 使用 XPath 定位所有 class 属性为 "item" 的 <li> 标签
result = html.xpath('//li[@class="item"]')
print(result)
# 使用 XPath 定位所有 class 属性为 "item" 的 <li> 标签下的 <a> 标签的 href 属性
result = html.xpath('//li[@class="item"]//a/@href')
print(result)
```
以上代码仅供参考,具体使用时需要根据实际情况进行修改。
阅读全文