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标签了。
待更新……