我在提取span类中的评级文本时遇到问题。
已尝试下列XPATH:
response.xpath("//i/span[@class='a-icon-alt']/text()").getall()
response.xpath('//span[@data-hook="rating-out-of-text"]/text()').getall()
我有以下HTML:
<div class="a-fixed-left-grid AverageCustomerReviews a-spacing-small">
<div class="a-fixed-left-grid-inner" style="padding-left:105px">
<div class="a-fixed-left-grid-col a-col-left" style="width:105px;margin-left:-105px;float:left;">
<i data-hook="average-star-rating" class="a-icon a-icon-star-medium a-star-medium-4 averageStarRating">
<span class="a-icon-alt">3,8 de 5 estrelas</span>
</i>
</div>
<div class="a-fixed-left-grid-col aok-align-center a-col-right" style="padding-left:0%;float:left;">
<div class="a-row">
<span class="a-size-base a-nowrap">
<span data-hook="rating-out-of-text" class="a-size-medium a-color-base">3,8 de 5</span>
</span>
</div>
</div>
</div>
</div>
如果有帮助的话,HTML是从这个页面中提取的:
https://www.amazon.com.br/Cookpad-inc/dp/B086MT7THB/ref=sr_1_12?brr=1&qid=1662666482&rd=1&s=alexa-skills&sr=1-12
1条答案
按热度按时间6tqwzwtp1#
我可以用这个来抓取它:span不是文本的直接父元素,因此使用
//
意味着它将从元素的任何从属元素中提取文本。更新
如果你正在使用scrapy......一个很好的方法是使用
open_in_browser
函数来发现scrapy的响应是否与你在浏览器中观察到的不同。例如: