2016-11-08 4 views
0

Я хочу извлечь «Return On Assets» с веб-сайтов wsj. Однако мой код недостаточно прочен, чтобы работать в разных условиях. я в состоянии, чтобы извлечь данные для бегущей строки «SCGM», используя код, приведенный ниже, но не могут for'AASIA»как <span class="marketDelta deltaType-negative">python: получить данные об изменении класса span с помощью 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] 

Нет проблемы для 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