2013-01-02 1 views
3

나는 다음과 같은 HTML이 : 나는 $ (295) 밖으로을 좀하고 싶습니다PyQuery는 : 요소의 텍스트, 자식 요소의 텍스트가 아닌 얻기

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

합니다. 그러나 단순히 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()는 span 태그를 유지하지 않으려면의 : 적어도 나는이 솔루션을 발견했습니다. 첫 번째 제거

훨씬 더 쉽다 :

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

감사합니다 - 요소를 제거하는 방법의 두 번째 팁은, 내가 사용 결국 것입니다. – Richard