Как получить максимальный номер страницы с помощью xpath?

Я написал выражение 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 ответ

Решение

Вы можете использовать точное имя класса, чтобы избежать выборки Следующая ссылка:

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

Обратите внимание, что contains(@class,'page-numbers') вернет вам ссылки с номерами и далее пока @class="page-numbers" только числа

Другие вопросы по тегам