5

私は次のHTMLを持っています:

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

295ドルを手に入れたいです。ただし、単純に PyQuery を次のように使用すると:

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

両方の価格を取得します。

jQueryで要素の直接の子テキストのみを抽出するのはかなり複雑に見えます.PyQueryでそれを行う方法はありますか?

現在、最初の価格を個別に抽出してから、replace を使用してテキストからそれを削除していますが、これは少し面倒です。

ご協力いただきありがとうございます。

4

1 に答える 1

3

それを行うためのきれいな方法はないと思います。少なくとも私はこの解決策を見つけました:

>>> print doc('h1').html(doc('h1')('span').outerHtml())
<h1 class="price"><span class="strike">$325.00</span></h1>

span タグを保持したくない場合は、.outerHtml() の代わりに .text() を使用できます。

最初のものを削除するのははるかに簡単です:

>>> print doc('h1').remove('span')
<h1 class="price">
  $295.00
</h1>
于 2013-01-04T04:12:50.017 に答える