【问题标题】:How can I select all paragraph elements inside nested divs?如何选择嵌套 div 中的所有段落元素?
【发布时间】:2022-02-12 00:50:06
【问题描述】:

我有一条评论要删除 (https://www.consumeraffairs.com/insurance/bluecross_fl.html)。我发现的问题是一些评论没有存储在同一个结构中。在页面中,您必须按“阅读完整评论”,然后才能访问包含评论剩余部分的结构的另一部分。

简单评论的结构是这样的:

<div>
   <p>
     review
   </p>
</div>

其他评论结构是这样的:

<div>
   <p>
     review
   </p>
   <div>
       <p>
         remaining review
      </p>
   </div>
</div>

我已经尝试过这样的事情,但我仍然只是获得第一部分的评论,而不是剩下的。

response.css('itemprop="reviews"] &gt; div:nth-child(3) &gt; p *::text').extract()

【问题讨论】:

  • div &gt; p ?????

标签: html css scrapy


【解决方案1】:

如果您使用一般的child selector,您应该能够定位所有p 的div。尽管结构。

div > p {
  background-color: #ffd110;
}
<div>
  <p>
    review
  </p>
  <div>
    <p>
      remaining review
    </p>
  </div>
</div>

<div>
  <p>
    review
  </p>
</div>

编辑 ~ 根据 cmets 中的请求,您可以集中使用 p:nth-child(2) 选择哪个 p 见下文。

div > p:nth-child(2) {
  background-color: #ffd110;
}
<div>
  <p>
    review
  </p>
  <div>
    <p>
      remaining review
    </p>
    <p>review 2</p>
  </div>
</div>

【讨论】:

  • 感谢这个作品!!!如果直接出现剩余评论,有没有办法连接结果?我可以通过外部索引来做到这一点,但我不知道是否有更简单的方法。
  • @JorgeRamos 是的!查看修改。
  • 谢谢,我试试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
相关资源
最近更新 更多