由于雅虎停止了他们的API支持Pandas数据读取器现在失败
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime(2017, 5, 17)
web.DataReader('GOOGL', 'yahoo', start, end)
HTTPError: HTTP Error 401: Unauthorized
有没有非官方的图书馆可以让我们暂时解决这个问题?2也许有关于Quandl的资料?
8条答案
按热度按时间ekqde3dh1#
我发现https://pypi.python.org/pypi/fix-yahoo-finance中的“fix-yahoo-finance”解决方案很有用,例如:
请注意,最后2列数据的顺序是“调整收盘价”和“成交量”,即不是以前的格式。要重新编制索引:
rhfm7lfc2#
fix_yahoo_finance包的名称已经更改为yfinance。
zkure5ic3#
所以他们已经改变了他们的网址,现在使用cookie保护(可能还有javascript),所以我用dryscrape修复了我自己的问题,它模拟了一个浏览器,这只是一个FYI,因为这肯定违反了他们的条款和条件...所以使用风险自担?我正在寻找Quandl的替代EOD价格来源。
我无法用cookie浏览CookieJar,所以我最终使用dryscrape来“伪造”用户下载
os8fio9y4#
我从雅虎换到谷歌财经,它对我很有效,所以从
到
并改编了我的“旧”雅虎符号:
到
zpgglvta5#
试试这个:
0yg35tkg6#
雅虎财经和Pandas合作得很好,这样用吧:
ijxebb2r7#
让线程在每次阅读数据后都处于睡眠状态。可能大部分时间都能工作,所以尝试5-6次并将数据保存在csv文件中,以便下次你可以从文件中读取。
wydwbb8l8#
这个问题已经很老了,但我还是来了。我在yfinancepypi.org项目页面上找到了一个标题为“panda_datareader override”的部分。它写道:
“如果你的代码使用了panda_datareader,而你又想更快地下载数据,你可以“劫持”panda_datareader.data.get_data_yahoo()方法来使用yfinance,同时确保返回的数据格式与panda_datareader的get_data_yahoo()相同。”
他们还提供了以下代码示例,该示例目前正在运行。