Как получить максимальный номер страницы с помощью 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"
только числа