从yahoo.finance

时间:2018-10-23 20:19:54

标签: python beautifulsoup yahoo-finance

我正在尝试从Yahoo Finance提取200天移动平均线的当前值(到目前为止,我一直在解析finviz.com,由于JSON输出,Yahoo似乎更快)。

例如,可以在https://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL->交易信息->股价历史记录-> 200天移动平均线处找到200天移动平均线

此解决方案非常有帮助: Using BeautifulSoup to Search Through Yahoo Finance

请求网址如下所示: 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'

我尝试了不同的模块(在这里找到模块列表:Yahoo Finance URL not working

但是,我在任何模块中都找不到200天MA。

我将不胜感激任何提示或建议!

2 个答案:

答案 0 :(得分:0)

我想我明白了! 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更快!

答案 1 :(得分:0)

请注意,Yahoo的“关键统计”页面上的200天移动平均基于200个日历日,而不是传统的200个交易日的定义。