【问题标题】:Css selector get text outside tagCss选择器获取标签外的文本
【发布时间】:2020-01-21 15:59:14
【问题描述】:

我有以下 HTML

<label id="w-57265">
<div class="radio same-option-inline" id="inline-condition-108103" style="border-color: rgb(204, 204, 204); border-width: 1px; border-style: solid;">
    <span class="">
        <input type="radio" name="option[57265]" value="108103">
        26EU <span class="specialPricevar" data-price="44.10 AED"></span>
        <span class="realPricevar" data-price="77.70 AED"></span>
        <small style="display: none;">Foot Size 16.5cm</small>
    </span>
    <span id="tickmark" class=""></span>
</div>

我想使用 lxml

通过 css 选择器获取 "26EU"

我已经试过了

doc.cssselect('label .same-option-inline')

但它返回了标签中的所有文本

26EU

脚尺寸 16.2cm

“26EU”“Foot Size 16.2cm”的正确方法是什么? (无空格)

【问题讨论】:

  • 该文本没有出现在您的代码中。
  • 抱歉有一个错字,现在已修复

标签: css css-selectors lxml lxml.html


【解决方案1】:

您可以尝试更具体地确定脚尺寸 doc.cssselect('label .same-option-inline small') 将返回“脚尺寸 16.5 厘米”

但是,您不能直接获得 26EU,因为它本身没有封装在任何标签中(它包含在 &lt;span class=""&gt; 中,但 Foot Size 也是如此。这就是您将这两个实体放在一起的原因。)

您可以尝试用&lt;p&gt;25EU&lt;/p&gt; 替换25EU,然后使用doc.cssselect('label .same-option-inline p')

这将只返回 25EU。

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2018-01-16
    • 2016-10-18
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    相关资源
    最近更新 更多