我想使用css选择器从该div <div class="one">
中仅选择文本(在我的示例中为“ 1.42”),以便进行抓取:
<div class="one">
1.42
<div class="nested">..</div>
</div>
我尝试了此操作,但返回了整个<div class="one">
(我只想要文本):
div.one:first-child
这也是
div.one:first-child:not(.nested)
它们都返回文本以及div.nested
内的内容
编辑:
我想使用选择器通过Beautifulsoup抓取特定文本
soup.select_one('div.one:first-child:not(.nested)')
答案 0 :(得分:3)
使用css类或不使用css类,都无法通过css选择不在html标记内的内容。在您的情况下,您应该将1.42文本包装在html标签中,例如<p>
。
这也是最佳做法,永远不要在没有诸如p的语义文本标记的情况下直接在div中直接打印文本。
拥有<p class="...">Text here</p>
后,您可以选择div:first-child,也可以简单地选择p或p.theclassname
。另一种方法是div:nth-child(1)
。