Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何向CSS选择器添加属性以指定特定的分页链接?_Python 3.x_Web Scraping_Scrapy - Fatal编程技术网

Python 3.x 如何向CSS选择器添加属性以指定特定的分页链接?

Python 3.x 如何向CSS选择器添加属性以指定特定的分页链接?,python-3.x,web-scraping,scrapy,Python 3.x,Web Scraping,Scrapy,我刚进入Scrapy&我知道这是一个Noob问题,但是我如何添加一个属性来指定特定的分页链接呢 这是带有我目标元素的html `<div class="pagination"> <a rel="prev" href="/collections/all?page=1" class="fa fa-chevron-left prev pagination-icon"></a> <ul> <li class="pagi

我刚进入Scrapy&我知道这是一个Noob问题,但是我如何添加一个属性来指定特定的分页链接呢

这是带有我目标元素的html

`<div class="pagination">
<a rel="prev" href="/collections/all?page=1" class="fa fa-chevron-left prev pagination-icon"></a>
<ul>
                <li class="pagination-icon">
            <a href="/collections/all?page=1" title="">1</a>
            </li>
                <li class="pagination-icon pagination-icon--current">
            2
            </li>
                <li class="pagination-icon">
            <a href="/collections/all?page=3" title="">3</a>
            </li>
                <li class="pagination-icon">
            <a href="/collections/all?page=4" title="">4</a>
            </li>
                <li class="pagination-icon pagination-icon--current">
            …
            </li>
                <li class="pagination-icon">
            <a href="/collections/all?page=50" title="">50</a>
            </li>
</ul>
发生的事情是它跟随这个链接而不是另一个链接,因为它是类“分页”中的第一个链接

 <a rel="prev" href="/collections/all?page=1" class="fa fa-chevron-left prev pagination-icon"></a>

在“分页”类中,我可以看到两个链接属性之间的两个差异

 <a rel="prev" href="/collections/all?page=1" class="fa fa-chevron-left prev pagination-icon"></a>
  • Rel属性不同,我需要带“next”的属性
  • Class属性不同,我需要“fa-fa-chevron右下一个分页图标”
  • 我非常确信,通过在css选择器中指定上面列出的两个属性之一,我可以获得正确的链接。我尝试使用以下CSS选择器,但没有一个有效

  • div.pagination a.fa V形右下一页分页图标a::attr(href)不起作用
  • a、 fa V形右下一页分页图标a::attr(href)不起作用
  • a、 fa V形右下一页分页图标::attr(href)不起作用

  • 我怎样才能实现我的目标?为什么我试过的CSS选择器都不起作用?

    不能用一个点选择多个类。可以将它们中的每一个都用点组合起来,也可以使用此语法
    “[class='fa-fa-chevron right next pagination icon']”
    。但是,如果动态生成其中的任何类,则选择器将中断

    然后试试看会发生什么

    response.css('div.pagination a[rel="next"]::attr(href)').extract_first()
    

    谢谢,这非常有效,下一步必须删除双引号。css('div.pagination a[rel=next]::attr(href)')。首先提取
    response.css('div.pagination a[rel="next"]::attr(href)').extract_first()