@Vsumin

Найти общее кол-во страниц для Парсинга. (pagination)?

Добрый день,

Подскажите, как можно найти в коде использую BS, максимально кол-во страниц? Цифра 20 спрятана в теге li

Пытаюсь найти следующим образом:

soup.find('ul', class_='sc-pagination')

<div class="cl-pagination">
    <ul class="sc-pagination" data-previous-text="Назад"
        data-next-text="Дальше">
        <li class="previous-page"><a
                href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=1">
            <as24-icon type="arrow">
                <svg xmlns="http://www.w3.org/2000/svg"
                     viewBox="0 0 10.5 6.277">
                    <path d="M.674.742L5.25 4.933 9.823.743" stroke-width="2"
                          stroke="#949494" fill="none"></path>
                </svg>
            </as24-icon>
            Назад</a></li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=1">1</a>
        </li>
        <li><a class="active" rel="nofollow">2</a></li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=3">3</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=4">4</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=5">5</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=6">6</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=7">7</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=8">8</a>
        </li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=9">9</a>
        </li>
        <li><a class="disabled" rel="nofollow">...</a></li>
        <li>
            <a href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=20">20</a>
        </li>
        <li class="next-page"><a
                href="?&amp;sort=price&amp;desc=0&amp;ustate=N%2CU&amp;size=20&amp;cy=NL&amp;fregfrom=2019&amp;atype=C&amp;ac=0&amp;page=3">Дальше
            <as24-icon type="arrow">
                <svg xmlns="http://www.w3.org/2000/svg"
                     viewBox="0 0 10.5 6.277">
                    <path d="M.674.742L5.25 4.933 9.823.743" stroke-width="2"
                          stroke="#949494" fill="none"></path>
                </svg>
            </as24-icon>
        </a></li>
    </ul>
</div>
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
from lxml import etree

str1 = """<div class="cl-pagination">
...
</div>"""

root = etree.fromstring(str1)
print(root.xpath('.//ul/li[last()-1]/a')[0].text)

20

Либо такой паттерн можно:
print(root.xpath('.//ul/li[not(contains(@class, "next-page")) and not(contains(@class, "previous-page"))]/a')[-1].text)

20
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы