我有以下HTML:
<h1 class="price">
<span class="strike">$325.00</span>$295.00
</h1>
我想得到295美元。但是,如果我只是按如下方式使用PyQuery:
price = pq('h1').text()
我得到两个价格。
Extracting only direct child text for an element in jQuery看起来相当复杂 - 有没有办法在PyQuery中完成它?
目前我正在单独提取第一个价格,然后使用replace将其从文本中删除,这有点繁琐。
感谢您的帮助。
答案 0 :(得分:3)
我认为没有一种干净的方法可以做到这一点。至少我找到了这个解决方案:
>>> print doc('h1').html(doc('h1')('span').outerHtml())
<h1 class="price"><span class="strike">$325.00</span></h1>
如果您不想保留span标记,可以使用.text()代替.outerHtml()。
删除第一个更容易:
>>> print doc('h1').remove('span')
<h1 class="price">
$295.00
</h1>