2014-10-03 2 views
0

안녕하세요, 태그의 모든 텍스트를 원하지만 그 td 태그 내에 여러 개의 하위 태그가 있습니다.lxml 태그 내의 어린이 텍스트를 포함한 태그 사이의 텍스트

>>>import urllib2 
>>>from lxml import etree 
>>>import lxml 
>>>site = "http://racing.racingnsw.com.au/InteractiveForm/HorseAllForm.aspx?HorseCode=ODA0ODQ0MTUy&src=horsesearch" 
>>>req = urllib2.Request(site) 
>>>page = urllib2.urlopen(req) 
>>>content = page.read() 
>>>root = etree.HTML(content) 
>>>s = root.xpath('//*[@id="info-container"]/table[2]/tr[%s]/td[2]/text()'%'34') 
>>>s 
[' 1800m Good3 PETER YOUNG STK Group 2 $222,000 ($134,000) ', ' 59kg Barrier 5 Rtg 118 ', ' 2nd ', ' 59kg, 3rd ', ' 59kg 1:50.09 (600m 34.92), 0.1L, [email protected], [email protected], $2/$2.15/$2.15'] 

나는 td 태그뿐만 아니라 자식 태그의 텍스트를 원하지만 현재의 lxml은 나를 위해 이것을하지 않습니다.

['RAND 31Jan14', ' 1300m Dead BT-4UEGOPN $000 ', 'Tommy Berry', ' 0kg Barrier 0 ', ' 1st ', 'Glencadam Gold (IRE)', ' 0kg, 3rd ', 'The Offer (IRE)', ' 0kg 1:20.90, 1L ', '\n'] 

또는 문자열을보다 바람직하다 그 목록의 표현에 가입 : 대신 내가보고 싶은

'RAND 31Jan14 1300m Dead BT-4UEGOPN $000 Tommy Berry 0kg Barrier 0 1st Glencadam Gold (IRE) 0kg, 3rd The Offer (IRE) 0kg 1:20.90, 1L' 

를 I했습니다 etree.tostring (XPath는, 방법 = "텍스트를 사용하여 시도 ") 문서를 둘러보고 행운을 보지 마십시오.

저는 lxml에서만 독점적으로 일하고 싶습니다. 따라서 Beautiful Soup와 같은 다른 라이브러리를 사용하지 마십시오. 건배

답변

3

text 속성은 해당 요소의 텍스트를 반환하지만 text_content method 모든 텍스트는 요소 에 포함 된 반환 또는 그 자녀 :

import urllib2 
import lxml.html as LH 

site = "http://racing.racingnsw.com.au/InteractiveForm/HorseAllForm.aspx?HorseCode=ODA0ODQ0MTUy&src=horsesearch" 
req = urllib2.Request(site) 
page = urllib2.urlopen(req) 
root = LH.parse(page) 
for td in root.xpath('//*[@id="info-container"]/table[2]/tr[33]/td[2]'): 
    print(td.text_content()) 

RAND 31Jan14 1300m Dead BT-4UEGOPN $000 Tommy Berry 0kg Barrier 0 1st Glencadam Gold (IRE) 0kg, 3rd The Offer (IRE) 0kg 1:20.90, 1L 
를 산출
관련 문제