【发布时间】:2020-06-23 12:31:59
【问题描述】:
提前感谢您抽出宝贵时间。我真的很感激。
我正在尝试从亚马逊获取产品评论、评级和其他信息。下面是相同的代码。我遇到的问题是:
- 首页有 10 条评论。
- 在抓取的数据中,所有评论仅来自这 10 位客户。
- 10 行评论数据,然后是一个空行,然后是这 10 行,依此类推。以同样的方式一共 196 行。
- 此外,如果客户在任何评论中使用“ENTER”作为间距,则评论中只有间距之前的文本。如下图黄色突出显示的那样。
抓取链接 - https://www.amazon.com/product-reviews/B01DFKC2SO/ref=cm_cr_arp_d_viewpnt_lft?pageNumber=
我的代码:
import scrapy
class ReviewspiderSpider(scrapy.Spider):
name = 'reviewspider'
allowed_domains = ["www.amazon.com"]
start_urls = [
'https://www.amazon.com/product-reviews/B01DFKC2SO/ref=cm_cr_arp_d_viewpnt_lft?pageNumber=']
def parse(self, response):
for review in response.xpath("//div[@id='cm_cr-review_list']/div"):
yield {
'Name': review.xpath('.//span[@class="a-profile-name"]/text()').get(),
'Title': review.xpath('.//a[@data-hook="review-title"]/span/text()').get(),
'Rating': review.xpath('.//span[@class="a-icon-alt"]/text()').get(),
'Review': review.xpath('.//span[@data-hook="review-body"]/span/text()').get()
}
next_page = response.xpath(
"//a[text()='Next page']").get()
if next_page:
yield response.follow(url=next_page, callback=self.parse)
输出:
【问题讨论】:
标签: python scrapy web-crawler scrapy-shell