2016-11-08 20 views
0
<td> <span class="data_lbl updated-daily">P/E Ratio <small class="data_meta">(including extraordinary items)</small></span> <span class="data_data"> <span class="marketDelta deltaType-negative">-69.83</span> </span> </td> 

データを抽出する方法データ '-69.83'を堅牢な方法で抽出するには? P/Eレシオに直接指差したい。python:データを抽出するxpath lxml

from lxml import html 
import requests 

StockData =['AASIA'] 
page_wsj1 = requests.get('http://quotes.wsj.com/MY/'+StockData[x]+'/financials') 
wsj1 = html.fromstring(page_wsj1.content) 
PE = wsj1.xpath('//td[contains(.,"P/E Ratio")]/text()') 

が、結果は[ ''、 ''、 ''、 ''、 '']

wsj1.xpath('//td[normalize-space(span) = "P/E Ratio"]/span[@class = "data_data"]/span/text()') 

はまた、[]結果

+2

何か書き込もうとしましたか? – Dekel

+0

これはhttp://stackoverflow.com/questions/40488422/python-get-data-from-changing-span-class-using-lxml-xpathの複製です – Markus

+0

あなたは 'span'がありません。 – Markus

答えて

0
//td[normalize-space(span/text()) = "P/E Ratio"]/span[@class = "data_data"]/span 

又は

//td[contains(normalize-space(span), "P/E Ratio")]/span[@class = "data_data"]/span 
+0

のいずれかを使用する必要があります。できます! contains()でそれを行う方法を追加できますか? – vindex

+0

@vindexの回答が更新されました – Markus

関連する問題