2016-11-08 5 views
0

Ich möchte 'Return On Assets' von WSJ-Websites extrahieren. Mein Code ist jedoch nicht robust genug, um unter verschiedenen Bedingungen zu arbeiten. ich in der Lage Daten für ticker ‚SCGM‘ den Code unter Verwendung zu extrahieren, aber for'AASIA‘als <span class="marketDelta deltaType-negative">Python: Daten aus ändern Span-Klasse mit Lxml XPath

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] 

Kein Problem für SCGM aber für Aasia scheitern, es hat nicht funktioniert, wie die Spannweite Klasse geändert wird. Für SCGM, die HTML-Tags wie folgt. Vollständiger Link 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> 

Für Aasia, die HTML-Tags, wie unten. Vollständiger Link 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> 

Wie man einen Code haben, die für beide Bedingungen arbeiten oder gerade zu ‚Return on Assets‘ zeigen?

Antwort

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