在XPath中选择不跟随轴的元素

时间:2014-08-26 23:07:40

标签: html xpath web-scraping

我有以下树片段:

<div class="pagesection">
  <div class="pagelinks floatleft">Pagine: [<strong>1</strong>]
    <a class="navPages" href="http://foo.com/2">2</a>
    <a class="navPages" href="http://foo.com/3">3</a>
  </div>
</div>

这是我需要废弃的网站部分的导航窗格。所以,我需要在强元素(当前页面)之后访问第一个A链接(下一页)。

我不能使用//DIV[@class="pagelinks"]/A[1],因为当我是前任时。在第2页上,窗格的第一个链接是第1页。这会导致我的刮刀循环(它需要一个由表达式产生的“下一页”链接)。为了确保向前导航,我必须在当前页面之后访问A链接

甚至最糟糕的是,刮刀不允许使用前/后轴,但似乎支持前兄弟和后兄弟。

我将使用哪个xpath表达式来访问A链接?

1 个答案:

答案 0 :(得分:1)

您可以获得第一个following-sibling::a

//div[contains(@class, "pagelinks")]/strong/following-sibling::a[1]/text()

演示(使用xmllint工具):

$ xmllint index.html --xpath '//div[contains(@class, "pagelinks")]/strong/following-sibling::a[1]/text()'
2