我在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:
发布于 2022-09-08 22:18:02
我能够使用以下方法获得它: span不是文本的直接父级,所以使用//
意味着它将从元素的任何附件中提取文本。
response.xpath('//span[@data-hook="rating-out-of-text"]//text()').getall()
更新
如果你用刮痕..。一个很好的方法是使用open_in_browser
函数来判断抓取响应是否与您在way浏览器中观察到的不同。然后你就可以从蜘蛛的角度看到页面的样子。
例如:
import scrapy
from scrapy.utils.response import open_in_browser
class MySpider(scrapy.Spider):
...
...
start_urls = [...]
def parse(self, response):
open_in_browser(response)
...
https://stackoverflow.com/questions/73654382
复制相似问题