如何使用xpath获取最高页码?

时间:2018-04-18 10:42:17

标签: python python-3.x xpath lxml

我已经编写了一个xpath表达式,以从某些page number获得html elements的最高值。但是,使用下面的xpath我得到的最后一个文本是Next Page。我希望我的xpath以这样的方式行动,这样我就可以得到最高的数字,就像6使用它一样。

应该应用xpath的元素:

content = """
<div class="nav-links"><span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">Page </span>1</span>
<a class="page-numbers" href="https://page/2/"><span class="meta-nav screen-reader-text">Page </span>2</a>
<span class="page-numbers dots">…</span>
<a class="page-numbers" href="https://page/6/"><span class="meta-nav screen-reader-text">Page </span>6</a>
<a class="next page-numbers" href="https://page/2/"><span class="screen-reader-text">Next Page</span></a></div>
"""

到目前为止我已尝试过:

from lxml.html import fromstring

root = fromstring(above_content)
pagenum = root.xpath("//*[contains(@class,'page-numbers')][last()]/span")[0].text
print(pagenum)

输出我有:

Next Page

我希望输出:

6

1 个答案:

答案 0 :(得分:3)

您可以使用确切的类名来避免获取下一个链接:

//a[@class="page-numbers"][last()]

请注意,contains(@class,'page-numbers')会返回带有数字的链接,而@class="page-numbers"只会返回