Scrapy -无法在Amazon上抓取收视率数据

56lgkhnf  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(117)

我正试图从亚马逊店面刮取收视率数据。考虑以下链接作为一个例子-
https://www.amazon.in/s?me=A2ABGQT3TTW1NZ&marketplaceID=A21TJRUUN4KGV
虽然我成功地搜集了姓名、评分(满分5分)、价格等数据点,但我无法搜集评分的数量。这存储在以下目录中-
844

def parse(self, response):
    for a in response.xpath("//div[@class='s-result-item s-asin sg-col-0-of-12 sg-col-16-of-20 sg-col s-widget-spacing-small sg-col-12-of-16']"):
        yield {
            'ASIN' : a.xpath("//@data-asin").get(),
            'Name' : a.xpath(".//span[@class='a-size-medium a-color-base a-text-normal']/text()").get(),
            'Rating' : a.xpath(".//span[@class='a-icon-alt']/text()").get(),
            'No. of Ratings' : a.xpath(".//span[@class='a-size-base']/text()").get(),
            'ASP' : a.xpath(".//span[@class='a-price-whole']/text()").get()
        }

评分数显示为
令人惊讶的是,直到几天前它都工作得很好。请帮我解决这个问题。
谢谢!!!

z9smfwbn

z9smfwbn1#

更改此行:

'No. of Ratings' : a.xpath(".//span[@class='a-size-base']/text()").get(),

变成

'No. of Ratings' : a.xpath(".//span[contains(@class, 'a-size-base')]/text()").get()

因为该范围的类是“基于大小、基于颜色、基于下划线的文本”

相关问题