首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法使用Scrapy从span类检索文本

无法使用Scrapy从span类检索文本
EN

Stack Overflow用户
提问于 2022-09-08 19:49:06
回答 1查看 59关注 0票数 1

我在span类中提取评等文本时有问题。

已经尝试了以下XPATH:

代码语言:javascript
运行
复制
response.xpath("//i/span[@class='a-icon-alt']/text()").getall()
response.xpath('//span[@data-hook="rating-out-of-text"]/text()').getall()

我有以下HTML:

代码语言:javascript
运行
复制
<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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 22:18:02

我能够使用以下方法获得它: span不是文本的直接父级,所以使用//意味着它将从元素的任何附件中提取文本。

代码语言:javascript
运行
复制
response.xpath('//span[@data-hook="rating-out-of-text"]//text()').getall()

更新

如果你用刮痕..。一个很好的方法是使用open_in_browser函数来判断抓取响应是否与您在way浏览器中观察到的不同。然后你就可以从蜘蛛的角度看到页面的样子。

例如:

代码语言:javascript
运行
复制
import scrapy
from scrapy.utils.response import open_in_browser

class MySpider(scrapy.Spider):
    ...
    ...
    start_urls = [...]

    def parse(self, response):
        open_in_browser(response)
        ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73654382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档