xpath定位方法

一. 常用定位方法

1.根据文本值定位元素
查找文本值为DNS的div元素
text1 = html.xpath("//div[text()='DNS']")
text2 = html.xpath("//div[text()='DNS']/text()")   #获取这个div对象的文本值
2.不选择某个子节点
#选取位置小于3的li节点,也就是1和2的节点
result = html.xpath('//li[position()<3]/a/text()')

#选取不含 class 属性的所有 p 节点
result = html.xpath('//p[not(@class)]')
3.寻址兄弟节点
preceding-sibling:向上查找
following-sibling:向下查找

//*[@class='demo']/following-sibling::div[1]  --》向下查找第一个兄弟节点 
//*[@class='demo']/preceding-sibling::div[1]  --》向上查找第一个兄弟节点 

二. 例子

# https://whois.chinaz.com/inhandnetworks.uk中获取DNS信息

texts = html.xpath("//div[text()='DNS']/parent::li/div[not(@class='fl WhLeList-left')]/span/text()")

1. 先获取文本值为DNS的div元素
2. 获取包含DNS框的父元素<li>
3. 找到不是DNS标题的<div>子元素
4. 找到dns值的子节点<span>的文本值,此时获得的是一个列表。

获得创建时间值
crtime = html.xpath("//div[text()='创建时间']/following-sibling::div[1]/span/text()")

参考:

https://blog.csdn.net/ldt117354/article/details/81003373

https://www.jianshu.com/p/f50014d0f940

posted @ 2023-03-17 17:26  坚强的小蚂蚁  阅读(174)  评论(0编辑  收藏  举报