2016-11-08 268 views
0

我想從wsj網站中提取'Return On Assets'。但是,我的代碼不夠健壯,無法在不同的條件下工作。 我能提取數據,使用下面的代碼股票「SCGM」,但未能for'AASIA」作爲<span class="marketDelta deltaType-negative">python:使用lxml xpath從更改span類中獲取數據

from lxml import html 
import requests 

StockData =['SCGM','AASIA'] 
page_wsj1 = requests.get('http://quotes.wsj.com/MY/'+StockData[x]+'/financials') 
wsj1 = html.fromstring(page_wsj1.content) 
wsj_fig = wsj1.xpath('//span[@class="marketDelta noChange"]/text()') 
ROA = wsj_fig[25] 

爲SCGM但AASIA沒有什麼問題,這並不像跨度類變更工作。 對於SCGM,html標籤如下。完整鏈接here

<tr> <td> <span class="data_lbl">Return on Assets</span> <span class="data_data"> <span class="marketDelta noChange">18.26</span> </span> </td> </tr> 

對於AASIA,html標記如下。全鏈路here

<tr> <td> <span class="data_lbl">Return on Assets</span> <span class="data_data"> <span class="marketDelta deltaType-negative">-1.36</span> </span> </td> </tr> 

如何有兩個條件下工作或筆直指向爲「資產回報」的代碼?

回答

0
//td[normalize-space(span) = "Return on Assets"]/span[@class = "data_data"]/span 
相關問題