Я пытаюсь получить данные от Yahoo, в первую очередь EV / EBITDA для акций.
Я пытался использовать xpath из chrome для получения текста, который возвратил [];даже после удаления "tbody"
from lxml import html
import requests
page = requests.get('https://finance.yahoo.com/quote/AAPL/key-statistics?
p=')
tree = html.fromstring(page.content)
data = tree.xpath('//*[@id="Col1-0-KeyStatistics-
Proxy"]/section/div[2]/div[1]/div[1]/div/table/tbody/tr[9]/td[2]/text()')
print(data)
Я снова удалил tbody и все равно получил [] в результате.
Мне удалось получить некоторый текст обратно, используя следующее:
from lxml import html
import requests
, а 1:
tick = input('Type in stock ticker: ')
page = requests.get('https://finance.yahoo.com/quote/' + tick + '/key-statistics?p=')
tree = html.fromstring(page.content)
data = tree.xpath('//*[@class="Fz(s) Fw(500) Ta(end)"]/text()')
print('\n')
print( tick + '-EV/EBITDA' + ':' +data[8])
print('\n')
pass
Это работает для большинства акций, однако, поскольку некоторые акцииотсутствуют данные, возвращаемое 9-е значение не всегда EV / EBITDA.В Интернете есть текст «N / A», но в сценарии нет заполнителя, поэтому пустое поле приводит к перемещению данных.
РЕЗУЛЬТАТЫ:
Type in stock ticker: AAPL
AAPL-EV/EBITDA:13.81
Type in stock ticker: DRIO
DRIO-EV/EBITDA:-221.56%
Type in stock ticker:
До этого DRIO не хватало некоторых данныхEV / EBITDA, поэтому возвращается неправильное значение.
Мне нужно, чтобы у приведенного выше кода были заполнители для значений N / A.ИЛИ Правильно получить EV / EBITDA через предпочтительно xpath.
Я новичок в программировании <1 месяц, самоучка, будь проще.</p>