2016-11-08 3 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> 

Как извлечь данные PE Соотношение данных '-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