如何解决Pandas Datareader 没有响应,HTTP 状态 404
我正在尝试使用 python 中的 Pandas datareader 使用 data_source 作为 Yahoo 获取公司(在本例中为 APPLE)的历史价格数据。
直到几天前(2021 年 7 月),这才完美运行。我不确定雅虎是再次停止使用他们的 API 还是只有我一个人。
import pandas_datareader as wb
data = wb.DataReader('AAPL',data_source='yahoo',start='2019-9-1')
print(data)
这是我得到的错误:
Traceback (most recent call last):
File "C:/Users/Allwin/Documents/GitHub/Dynamic_Programming/Apna Col/scratchBook.py",line 4,in <module>
data = wb.DataReader('AAPL',start='2019-9-1')
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas\util\_decorators.py",line 199,in wrapper
return func(*args,**kwargs)
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\data.py",line 376,in DataReader
return YahooDailyReader(
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\base.py",line 253,in read
df = self._read_one_data(self.url,params=self._get_params(self.symbols))
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\yahoo\daily.py",line 153,in _read_one_data
resp = self._get_response(url,params=params)
File "C:\Users\Allwin\anaconda3\envs\Complete_FinAnalysis\lib\site-packages\pandas_datareader\base.py",line 181,in _get_response
raise RemoteDataError(msg)
pandas_datareader._utils.RemoteDataError: Unable to read URL: https://finance.yahoo.com/quote/AAPL/history?period1=1567299600&period2=1625273999&interval=1d&frequency=1d&filter=history
Response Text:
b'<!DOCTYPE html>\n <html lang="en-us"><head>\n <Meta http-equiv="content-type" content="text/html; charset=UTF-8">\n <Meta charset="utf-8">\n <title>Yahoo</title>\n <Meta name="viewport" content="width=device-width,initial-scale=1,minimal-ui">\n <Meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\n <style>\n html {\n height: 100%;\n }\n body {\n background: #fafafc url(https://s.yimg.com/nn/img/sad-panda-201402200631.png) 50% 50%;\n background-size: cover;\n height: 100%;\n text-align: center;\n font: 300 18px "helvetica neue",helvetica,verdana,tahoma,arial,sans-serif;\n }\n table {\n height: 100%;\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n border: none;\n }\n h1 {\n font-size: 42px;\n font-weight: 400;\n color: #400090;\n }\n p {\n color: #1A1A1A;\n }\n #message-1 {\n font-weight: bold;\n margin: 0;\n }\n #message-2 {\n display: inline-block;\n *display: inline;\n zoom: 1;\n max-width: 17em;\n _width: 17em;\n }\n </style>\n <script>\n document.write(\'<img src="//geo.yahoo.com/b?s=1197757129&t=\'+new Date().getTime()+\'&src=aws&err_url=\'+encodeURIComponent(document.URL)+\'&err=%<pssc>&test=\'+encodeURIComponent(\'%<{Bucket}cqh[:200]>\')+\'" width="0px" height="0px"/>\');var beacon = new Image();beacon.src="//bcn.fp.yahoo.com/p?s=1197757129&t="+new Date().getTime()+"&src=aws&err_url="+encodeURIComponent(document.URL)+"&err=%<pssc>&test="+encodeURIComponent(\'%<{Bucket}cqh[:200]>\');\n </script>\n </head>\n <body>\n <!-- status code : 404 -->\n <!-- Not Found on Server -->\n <table>\n <tbody><tr>\n <td>\n <h1 style="margin-top:20px;">Will be right back...</h1>\n <p id="message-1">Thank you for your patience.</p>\n <p id="message-2">Our engineers are working quickly to resolve the issue.</p>\n </td>\n </tr>\n </tbody></table>\n </body></html>'
解决方法
我有同样的错误。
我将 pandas-datareader 从 0.9.0 升级到 0.10.0。 我还将 pandas 从 1.1.1 升级到 1.3.0。
然后错误消失了。我不知道哪一个真正解决了问题。
一种可能的升级方式是输入:pip install --upgrade pandas-datareader
。
我也有同样的问题。看起来雅虎网站正在运行,但也许他们改变了格式。我能够导航到由 pandas datareader 生成的 url 并发现我可以手动下载数据。
更新:
如果您阅读错误消息..最后它会说:
<!-- status code : 404 -->\n <!-- Not Found on Server -->\n <table>\n <tbody><tr>\n <td>\n <h1 style="margin-top:20px;">Will be right back...</h1>\n <p id="message-1">Thank you for your patience.</p>\n <p id="message-2">Our engineers are working quickly to resolve the issue.</p>
所以,我认为这是一个暂时的雅虎问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。