在Scrapy中获取下一页时遇到问题

yhxst69z  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(181)

我正在学习使用scrapy,并且正在构建一个简单的爬虫来巩固我正在学习的内容,并且正在尝试获取下一页链接,但是遇到了麻烦。有人能给我指出获取下一页链接的正确方向吗?它位于最终lia
分页div如下所示:

<div class="pagination pagination-small hidden-phone">
    <ul>
        <li><a href="./viewforum.php?f=399&amp;start=40" data-original-title="" title=""><i
                class="icon-chevron-left"></i></a></li>
        <li><a href="./viewforum.php?f=399" data-original-title="" title="">1</a></li>
        <span class="page-sep">, </span>
        <li><a href="./viewforum.php?f=399&amp;start=40" data-original-title="" title="">2</a></li>
        <span class="page-sep">, </span>
        <li class="active"><a data-original-title="" title="">3</a></li>
        <span class="page-sep">, </span>
        <li><a href="./viewforum.php?f=399&amp;start=120" data-original-title="" title="">4</a></li>
        <span class="page-sep">, </span>
        <li><a href="./viewforum.php?f=399&amp;start=160" data-original-title="" title="">5</a></li>
        <span class="page-sep">, </span>
        <li><a href="./viewforum.php?f=399&amp;start=200" data-original-title="" title="">6</a></li>
        <li class="active"><a class="pointer-fix" href="#" onclick="jumpto(); return false;" title=""
                              data-original-title="Jump to page"> ... </a></li>
        <li><a href="./viewforum.php?f=399&amp;start=311244" data-original-title="" title="">10012</a></li>
        <li><a href="./viewforum.php?f=399&amp;start=120" data-original-title="" title=""><i
                class="icon-chevron-right"></i></a></li>
    </ul>
</div>

我已经尝试了下面的不同变体,但是返回了错误的li,即使我使用了li:not([class="page-sep, active"]),它仍然给我class=active liresponse.css('div.pagination.pagination-small.hidden-phone').css('li:not([class="page-sep, active"])').get()
例如:

>>> response.css('div.pagination.pagination-small.hidden-phone').css('li:not([class="active, page-sep"])').get()
'<li class="active"><a>1</a></li>'

谢谢

r8xiu3jd

r8xiu3jd1#

由于它是列表中的最后一个li,我们可以利用它来获得优势。

CSS:

In [1]: response.css('div.pagination li:last-child a::attr(href)').get()
Out[1]: './viewforum.php?f=399&start=120'

路径:

In [2]: response.xpath('//div[contains(@class, "pagination")]//li[last()]/a/@href').get()
Out[2]: './viewforum.php?f=399&start=120'

相关问题