我如何 select 嵌套 div 中的所有段落元素?
How can I select all paragraph elements inside nested divs?
我有一条评论想抓取 (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"] > div:nth-child(3) > p *::text').extract()
如果您使用通用 child selector,您应该能够定位 div 中的所有 p
。尽管结构。
div > p {
background-color: #ffd110;
}
<div>
<p>
review
</p>
<div>
<p>
remaining review
</p>
</div>
</div>
<div>
<p>
review
</p>
</div>
编辑 ~ 根据评论中的要求,您可以集中使用 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>
我有一条评论想抓取 (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"] > div:nth-child(3) > p *::text').extract()
如果您使用通用 child selector,您应该能够定位 div 中的所有 p
。尽管结构。
div > p {
background-color: #ffd110;
}
<div>
<p>
review
</p>
<div>
<p>
remaining review
</p>
</div>
</div>
<div>
<p>
review
</p>
</div>
编辑 ~ 根据评论中的要求,您可以集中使用 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>