繁体   English   中英

Scrapy 仅获得页面的前 24 项

[英]Scrapy gets only 24 first items of page

我尝试了很多方法来抓取宜家页面,我发现在最后一页宜家实际上显示了所有项目。 但是,当我尝试抓取宜家产品的最后一页时,它只返回了第 24 个项目(对应于第一页显示的项目。这是页面的 URL: https://www.ikea.com/fr /fr/cat/lits-bm003/?page=12

这是蜘蛛:

import scrapy
import pprint

class SpiderSpider(scrapy.Spider):
    name = 'Ikea'
    pages = 9
    start_urls = ['https://www.ikea.com/fr/fr/cat/canapes-fu003/?page=12']

    def parse(self, response):
        data = {}
        products = response.css('div.plp-product-list')
        for product in products:
            for p in product.css('div.range-revamp-product-compact'):
                yield {
                    'Title' : p.css('div.range-revamp-header-section__title--small::text').getall()[0],
                    'Price' : p.css('span.range-revamp-price__integer::text').getall()[0],
                    'Desc' : p.css('span.range-revamp-header-section__description-text::text').getall()[0],
                    'Img' : p.css('img.range-revamp-aspect-ratio-image__image::attr(src)').getall()[0]
                }

Scrapy 的蜘蛛不运行 JavaScript(这是浏览器的工作),它只会加载与 cURL 相同的响应内容。

按照您的建议进行操作,您需要一个基于浏览器的解决方案,例如Selenium (Python) 或Cypress (JavaScript)。 那个或 go 分别通过每个页面。 尝试使用“无头浏览器”。

可能有更好的方法可以做到这一点,但为了解决您的确切问题,这是预期的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM