5

我有以下 HTML:

<h1 class="price">
 <span class="strike">$325.00</span>$295.00
</h1>

我想拿出 295 美元。但是,如果我只是按如下方式使用 PyQuery:

price = pq('h1').text()

我得到了这两个价格。

在 jQuery 中仅提取元素的直接子文本看起来相当复杂 - 在 PyQuery 中有没有办法做到这一点?

目前我正在单独提取第一个价格,然后使用替换将其从文本中删除,这有点繁琐。

谢谢你的帮助。

4

1 回答 1

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>
于 2013-01-04T04:12:50.017 回答