xpath用法及实践总结

xpath相对当前节点定位方法总结(引用自https://blog.csdn.net/leejeff/article/details/49737043):

1、child 选取当前节点的所有子元素 
2、parent 选取当前节点的父节点 
3、descendant 选取当前节点的所有后代元素(子、孙等) 
4、ancestor 选取当前节点的所有先辈(父、祖父等) 
5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身 
6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 
7、preceding-sibling 选取当前节点之前的所有同级节点 
8、following-sibling 选取当前节点之后的所有同级节点 
9、preceding 选取文档中当前节点的开始标签之前的所有节点 
10、following 选取文档中当前节点的结束标签之后的所有节点 
11、self 选取当前节点 
12、attribute 选取当前节点的所有属性 
13、namespace 选取当前节点的所有命名空间节点 

如:要定位当前td同级后的一个td

//td[.='text']/following-sibling::td

现在有这么一个例子,要选取特定a标签的后面所有同级a标签

<ul><li><a href="/article/3019827.aspx">第一章:楔子——六年前</a></li>
<li><a href="/article/3019828.aspx">第二章:抓奸在床</a></li>
<li><a href="/article/3019829.aspx">第三章:六年不见,还是这么廉价</a></li>
<li><a href="/article/3019830.aspx">第四章:我要告你</a></li>
<li> </li>
<li> </li>
</ul>

比如我要抓取第二章后面的所有章节的超链接。

首先定位到第二章的a标签:

//div[@id='readlist']/ul/li/a[contains(@href,'/article/3019827.aspx')]
然后选到a标签的父节点li,再使用
following-sibling::li/a
就能选取到后面的所有的a标签了。

待更新……

猜你喜欢

转载自blog.csdn.net/hiliqi/article/details/79982449
今日推荐