我正试图阅读Python中一个产品的所有评论。我有一个脚本,但它不起作用。
parser = html.fromstring(page_response)
XPATH_AGGREGATE = '//span[@id="acrCustomerReviewText"]'
XPATH_REVIEW_SECTION_1 = '//div[@data-hook="reviews-content"]'
XPATH_REVIEW_SECTION_2 = '//div[@data-hook="review"]'
XPATH_AGGREGATE_RATING = '//table[@id="histogramTable"]//tr'
XPATH_PRODUCT_NAME = '//h1//span[@id="productTitle"]//text()'
XPATH_PRODUCT_PRICE = '//span[@id="priceblock_ourprice"]/text()'
raw_product_price = parser.xpath(XPATH_PRODUCT_PRICE)
product_price = ''.join(raw_product_price).replace(',','')
raw_product_name = parser.xpath(XPATH_PRODUCT_NAME)
product_name = ''.join(raw_product_name).strip()
total_ratings = parser.xpath(XPATH_AGGREGATE_RATING)
reviews = parser.xpath(XPATH_REVIEW_SECTION_1)
if not reviews:
reviews = parser.xpath(XPATH_REVIEW_SECTION_2)
页面是https://www.amazon.com/productreviews/ '+asin+"/,其中asin是一个ID(例如,B 0718 Y23 CQ)。我在评论中什么也没有得到。感谢任何帮助!
1条答案
按热度按时间ahy6op9u1#
好吧,如果我必须诚实,我不知道你使用的一些路径在哪里,因为我找不到它们。我重新编写了你的代码,试图帮助你:
输出方案为:
现在你必须清理结果,从列表中删除它们,防止元素为空,我想你会得到你需要的。要得到所有的评论,你必须迭代页面,添加
?pageNumber=1
到链接,并迭代数字。你可以使用代理来防止IP阻塞,以防你要做很多请求。