如何在Scrapy中使用css-selectors提取'div'标签下的'span'标签后写入的金额?

oyjwcjzk  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(186)

我想得到在div标记下的span标记后写入的金额(182.78),但我只得到字符串形式的“MRP”元素内容,我只想提取写入的金额。顺便说一下,我使用ipython作为我的shell
HTML代码:

<div class="style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR">

<div>Augmentin 625 Duo Tablet</div>

<div>
<span class="style__font-normal___2gZqF style__margin-left-8px___3Sw1d">MRP</span>

₹<!-- -->
182.78

</div>
</div>

我用过的代码

med.css('div span ::text').get()

我的代码的输出是..... -->'MRP'

iklwldmw

iklwldmw1#

当前选择器'div span ::text'意味着您需要div元素的子元素span元素中的文本内容。但是,您尝试提取的文本不在span元素的内容中。

<div ...>
   <span ...>MRP</span>
   ...
   <!-- -->
   "132.73"
</div>

为了使用CSS选择器提取它,您可以使用:has()指令指定divspan作为直接后代,如下所示:

response.css('div:has(> span)::text')

由于它被一个注解和span标记打破,因此它将使用getall()方法并指示您想要最后一个索引。
例如:

>>> response.css('div:has(> span)::text').getall()[-1]
"132.73"

相关问题