2013-01-02 58 views
3

我有以下HTML:PyQuery:獲取元素的只有文字,沒有子元素的文本

<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中有沒有辦法做到這一點?

目前我單獨提取第一個價格,然後使用替換從文本中刪除它,這有點煩瑣。

感謝您的幫助。

回答

3

我不認爲有一個乾淨的方式來做到這一點。至少我發現這個解決方案:

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

可以使用的.text(),而不是.outerHtml(),如果你不想繼續跨度標籤。

拆除第一個是更容易:

>>> print doc('h1').remove('span') 
<h1 class="price"> 
    $295.00 
</h1> 
+0

謝謝 - 第二尖,如何刪除元素,是我最終使用。 – Richard

相關問題