雅虎公共 API 返回结果为空.获取股票数据列表的另一种选择是什么?



我在下面使用了api:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22AVGO%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=

它返回低于 json:

{ "查询":{ "计数": 0, "创建":"2017-12-15T10:17:09Z", "lang": "en-US", "诊断":{ "重定向":[{ "from": "/ec?url=http%3a%2f%2fwww.datatables.org%2fyahoo%2ffinance%2fyahoo.finance.quotes.xml&t=1513333026&ttl=60&sig=5p8s71uMOfbvHH8Cx7iHVQ--~D", "状态": "307", "内容":"http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml" }, { "from": "/ec?url=http%3a%2f%2fdownload.finance.yahoo.com%2fd%2fquotes.csv%3ff%3daa2bb2b3b4cc1c3c4c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6i5j1j3j4j5j6k1k2k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy%26s%3dAVGO&t=1513333029&ttl=60&sig=lMli2lKRDkqtxVXcjK.Vyg--~D", "状态": "307", "内容":"http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c4c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=AVGO" }], "网址": [{ "执行开始时间": "0", "执行停止时间": "2", "执行时间": "2", "内容":"http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml" }, { "执行开始时间": "2504", "执行停止时间": "2509", "执行时间": "5", "http-status-code": "403", "http-status-message": "Forbidden", "内容":"http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c4c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=AVGO" }], "公开可调用": "true", "缓存":{ "错误": "等待操作超时 - 故障节点:memcache3.yql.gq1.yahoo.com/206.190.36.58:11211", "执行开始时间": "3", "执行停止时间": "2503", "执行时间": "2500", "方法": "获取", "类型": "MEMCACHED", "内容": "5D1E1DE680846A307C9874dc3D6878DC" }, "javascript": ["无法从缓存中检索查询结果,等待操作超时 - 失败节点:memcache3.yql.gq1.yahoo.com/206.190.36.58:11211", { "执行开始时间": "2", "执行停止时间": "2509", "执行时间": "2506", "使用的说明": "12000", "表名": "雅虎财经行情" }], "csv": "列不匹配: [Ask, AverageDailyVolume, Bid, AskRealtime, BidRealtime, BookValue, Change&PercentChange, Change, Commission, Currency, ChangeRealtime, AfterHoursChangeRealtime, DividendShare, LastTradeDate, TradeDate, EarningsShare, ErrorIndication返回为符号更改无效, EPSEstimateCurrentYear, EPSEstimateNextYear, EPSEstimateNextQuarter, DaysLow, DaysHigh, YearLow, YearHigh, HoldingsGainPercent, 年化收益, HoldingsGainsGainPercentRealtime, 持有收益实时, 更多信息, 订单簿实时, 市值, 市值, 市值实时, EBITDA, 变化从年份低, 百分比变化从年份低, 上一个交易实时与时间, 变化百分比实时, 变化从年份高, Percebt变化从年份高, 最后交易与时间, 最后交易价格仅, 高限, 下限, 天数范围, 天数范围实时, 五十天移动平均, 两百天移动平均, 从两百天移动平均, 百分比变化从两百天移动平均,变化从五十天移动平均, 百分比变化从五十天移动平均, 名称, 票据, 开盘, 上一个收盘, 价格支付, 变化百分比, 价格销售, 价格簿, 除息日, PERatio, 股息支付日期, PERatioReal, PEGRatio, PriceEPSEstimate当前年份, PriceEPSEstimateNextYear, 符号, 拥有的股票, 空头比率, 最后交易时间, 股票趋势, 一年目标价格, 交易量, 持有价值, 持有价值实时, 年份范围, 天数价值变化, 天数价值变化实时, 证券交易所,DividendYield] vs Yahoo! - 403 禁止 -- 错误 403我们注意到,这项服务的使用违反了雅虎服务条款。 因此,该服务正在停止。 有关所有未来市场和股票数据研究,请参阅 finance.yahoo.com。 "查询":{ "执行开始时间": "2503", "执行停止时间": "2509", "执行时间": "6", "params": "{url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c4c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=AVGO]}","content": "从 csv 中选择 *,其中 url=@url 和列='要价,平均每日交易量,出价,实时询价,实时出价,账面价值,变化和百分比变化,变化,佣金,货币,实时变化,盘后更改实时,股息份额,上一个交易日期,交易日期,收益份额,错误指示返回为符号更改无效,EPSEstimate当前年份,EPSEstimate下一年,EPSEstimate下一季度,天数低,天高,年低,年高,年高,持仓收益百分比,年化收益,持股收益,持股收益百分比实时,持仓收益实时,更多信息,订单簿实时,市值,市值实时,EBITDA,变化从年低,百分比变化从年低,上一个交易实时与时间,变化百分比实时,变化从年高,感知变化从一年高,最后交易时间,最后交易价格,上限,下限,天数范围,天数范围实时,五十天移动平均,两百天移动平均,变化从两百天移动平均,百分比变化从两百天移动平均,变化从五十天移动平均,百分比变化从五十天移动平均,名称,注释,开盘,上一个收盘,支付价格,变化百分比,价格销售,价目簿,除息日期,PERatio,股息支付日期,PERatio实时,PEGRatio,PriceEPSEstimate当前年份,PriceEPSEstimate下一年,符号,拥有的股票,空头比率,最后交易时间,股票代码趋势,一年目标价格,交易量,持仓价值,持仓价值实时,年份范围,天数价值变化,天数价值变化实时,证券交易所,股息收益率'" }, "用户时间": "2509", "服务时间": "2507", "内部版本":"2.0.217" }, "结果":空 } }

>雅虎关闭了他们的股票API。

您可以使用yahoo_fin包获取实时数据。 它的文档在这里:http://theautomatic.net/yahoo_fin-documentation/。 你主要需要它的两个函数——get_data和get_quote_table。

如果你想要实时价格,你可以这样做:

from yahoo_fin.stock_info import get_data, get_quote_table
# get current price for Apple's stock
get_data("AAPL").close[-1]

在交易日运行上述代码将获得当前的实时价格。

如果您需要其他信息,例如报价页面上可用的信息(例如 https://finance.yahoo.com/quote/AAPL?p=AAPL),您可以使用get_quote_table功能:

get_quote_table("AAPL")

因此,您只需要将"AAPL"替换为您想要的任何股票代码。

yahoo_fin包还具有从标准普尔、纳斯达克和道琼斯指数获取股票代码列表的功能——所以如果你想提取这些股票代码的所有数据,你可以循环这些函数返回的股票代码列表。

from yahoo_fin.stock_info import tickers_dow
# get all Dow tickers
dow_tickers = tickers_dow()
# get price data for Dow stocks
dow_data = {ticker : get_data(ticker) for ticker in dow_tickers}

最新更新