Yahoo-Finance module doesn't work anymore?
本问题已经有最佳答案,请猛点这里访问。
我在python中使用了雅虎财务模块。我把这个项目搁置了几个月,然后又重新开始了。不幸的是,雅虎财务模块的背后似乎已经没有任何东西了!
我运行了pypi文档中的示例代码,什么也没有得到。
1 2 3 4 5 6 7 8 | >>> from yahoo_finance import Share >>> yahoo = Share('YHOO') >>> print yahoo.get_open() None >>> print yahoo.get_price() None >>> print yahoo.get_trade_datetime() None |
虽然我可以打开goog,但当我试图访问历史数据时,我得到了一个错误,并且似乎无法访问任何股票的历史数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | None >>> goog = Share('GOOG') >>> goog.get_open() '956.83' >>> print(yahoo.get_open()) None >>> goog.get_historical('2014-04-25', '2014-04-29') Traceback (most recent call last): File"C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packag es\yahoo_finance\__init__.py", line 120, in _request _, results = response['query']['results'].popitem() AttributeError: 'NoneType' object has no attribute 'popitem' During handling of the above exception, another exception occurred: Traceback (most recent call last): File"C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packag es\yahoo_finance\__init__.py", line 123, in _request raise YQLQueryError(response['error']['description']) KeyError: 'error' During handling of the above exception, another exception occurred: Traceback (most recent call last): File"<stdin>", line 1, in <module> File"C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packag es\yahoo_finance\__init__.py", line 342, in get_historical result = self._request(query) File"C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packag es\yahoo_finance\__init__.py", line 125, in _request raise YQLResponseMalformedError() yahoo_finance.YQLResponseMalformedError: Response malformed. >>> |
号
我试过在最近的日期范围内跑步,但没有运气。历史数据似乎只是从模块中不可用,而在几个星期前,它是可靠的。有什么见解吗?
来自ED0906的答案:https://stackoverflow.com/a/44050039/5766416
雅虎停止了他们的桌面连接API。您仍然可以通过手机连接到它。因此,可以通过将GET请求的头文件设置为某个移动浏览器来绕过这一点。
或
按照Ed的方法,获取并设置请求中的crumb。我使用了它,并验证了它的有效性。