Я пытаюсь извлечь текущее значение 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®ion=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance.yahoo.com'
Я пробовал разные модули (нашел список модулей здесь: URL-адрес Yahoo Finance не работает )
Однако я не могу найти 200-дневную MA ни в одном из модулей.
Буду признателен за любые подсказки или предложения!
Обратите внимание, что скользящее среднее за 200 дней на странице ключевой статистики Yahoo основано на 200 календарных днях, а не на традиционном определении 200 торговых дней.
Кажется, я понял это!Есть еще один модуль по финансам 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®ion=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 намного быстрее!