Извлечение данных из yahoo.finance - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь извлечь текущее значение 200-дневной скользящей средней из Yahoo Finance (до сих пор я разбирал finviz.com, Yahoo, кажется, работает быстрее из-за вывода JSON).

Например, 200-дневную скользящую среднюю можно найти по адресу https://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL -> Торговая информация -> История цен на акции -> 200-дневная скользящая средняя

Это решение очень полезно: Использование BeautifulSoup для поиска в Yahoo Finance

URL-адрес запроса выглядит следующим образом: https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?formatted=true&crumb=8ldhetOu7RJ&lang=en-US&region=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance.yahoo.com'

Я пробовал разные модули (нашел список модулей здесь: URL-адрес Yahoo Finance не работает )

Однако я не могу найти 200-дневную MA ни в одном из модулей.

Буду признателен за любые подсказки или предложения!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Обратите внимание, что скользящее среднее за 200 дней на странице ключевой статистики Yahoo основано на 200 календарных днях, а не на традиционном определении 200 торговых дней.

0 голосов
/ 24 октября 2018

Кажется, я понял это!Есть еще один модуль по финансам Yahoo, который возвращает информацию, которую я искал: summaryDetail

Это действительно просто:

from bs4 import BeautifulSoup
import requests

r = requests.get('https://query2.finance.yahoo.com/v10/finance/quoteSummary/GLW?formatted=true&crumb=8ldhetOu7RJ&lang=en-US&region=US&modules=summaryDetail&corsDomain=finance.yahoo.com')
data = r.json()
financial_data=data['quoteSummary']['result'][0]['summaryDetail']
twoHundredMA_dict = financial_data['twoHundredDayAverage']
print(twoHundredMA_dict['fmt'])

В этом случае использование JSON вместо lxml намного быстрее!

...