来自 Google Compute Engine 的 http 请求出现问题
Trouble with http request from Google Compute Engine
我正在尝试设置 Google Compute Engine 服务器以使用 Python Pandas 提取选项数据。当我在家里从我的 Mac 提出这个请求时,我只有在深夜访问 Yahoo!正在重置其服务器(数据是从 Yahoo! Finance 中提取的)。但是当我尝试从我的 Compute Engine 服务器做同样的事情时,对于我感兴趣的一些股票的请求总是失败,尽管它通常适用于大公司的期权,例如 'aapl' 或 'ge'.在我家里的电脑上,运行 同时,大小公司的相同请求都成功了。
请求通常需要几秒钟,可能多达 15 秒。当我在 Google 服务器上发出这些请求时,有没有办法获取更广泛的日志以了解发生了什么?我唯一能想到的是,由于某些原因,这些特定的 http 请求存在权限问题,或者配置了干扰的超时。但据我所知,对于这种请求,一般超时应该是 75 秒,而且不可能花费那么长时间。
这是我从 python shell 中看到的示例:
>>> from pandas.io.data import Options
>>> spwr = Options('spwr', 'yahoo')
>>> data = spwr.get_all_data()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 1090, in get_all_data
return self._get_data_in_date_range(dates=expiry_dates, call=call, put=put)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 1104, in _get_data_in_date_range
frame = self._get_option_data(expiry=expiry_date, name=name)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 723, in _get_option_data
frames = self._get_option_frames_from_yahoo(expiry)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 655, in _get_option_frames_from_yahoo
option_frames = self._option_frames_from_url(url)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 692, in _option_frames_from_url
raise RemoteDataError('Received no data from Yahoo at url: %s' % url)
pandas.io.data.RemoteDataError: Received no data from Yahoo at url: http://finance.yahoo.com/q/op?s=SPWR&date=1430438400
>>> aapl = Options('aapl', 'yahoo')
>>> data = aapl.get_all_data()
>>>
我从未成功获得 'spwr' 的选项数据,但通常它适用于较大的公司。
有什么办法可以解决这个问题吗?或查看日志以详细了解此处发生的情况?
这是由 Pandas 0.15.2 中的一个问题引起的。当我恢复到 Pandas 0.15.1 时,它又开始工作了。 issue 已提交给 Pandas。检查那里是否已在以后的版本中解决。
我正在尝试设置 Google Compute Engine 服务器以使用 Python Pandas 提取选项数据。当我在家里从我的 Mac 提出这个请求时,我只有在深夜访问 Yahoo!正在重置其服务器(数据是从 Yahoo! Finance 中提取的)。但是当我尝试从我的 Compute Engine 服务器做同样的事情时,对于我感兴趣的一些股票的请求总是失败,尽管它通常适用于大公司的期权,例如 'aapl' 或 'ge'.在我家里的电脑上,运行 同时,大小公司的相同请求都成功了。
请求通常需要几秒钟,可能多达 15 秒。当我在 Google 服务器上发出这些请求时,有没有办法获取更广泛的日志以了解发生了什么?我唯一能想到的是,由于某些原因,这些特定的 http 请求存在权限问题,或者配置了干扰的超时。但据我所知,对于这种请求,一般超时应该是 75 秒,而且不可能花费那么长时间。
这是我从 python shell 中看到的示例:
>>> from pandas.io.data import Options
>>> spwr = Options('spwr', 'yahoo')
>>> data = spwr.get_all_data()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 1090, in get_all_data
return self._get_data_in_date_range(dates=expiry_dates, call=call, put=put)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 1104, in _get_data_in_date_range
frame = self._get_option_data(expiry=expiry_date, name=name)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 723, in _get_option_data
frames = self._get_option_frames_from_yahoo(expiry)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 655, in _get_option_frames_from_yahoo
option_frames = self._option_frames_from_url(url)
File "/mnt/disk1/venv/optbot/local/lib/python2.7/site-packages/pandas/io/data.py", line 692, in _option_frames_from_url
raise RemoteDataError('Received no data from Yahoo at url: %s' % url)
pandas.io.data.RemoteDataError: Received no data from Yahoo at url: http://finance.yahoo.com/q/op?s=SPWR&date=1430438400
>>> aapl = Options('aapl', 'yahoo')
>>> data = aapl.get_all_data()
>>>
我从未成功获得 'spwr' 的选项数据,但通常它适用于较大的公司。
有什么办法可以解决这个问题吗?或查看日志以详细了解此处发生的情况?
这是由 Pandas 0.15.2 中的一个问题引起的。当我恢复到 Pandas 0.15.1 时,它又开始工作了。 issue 已提交给 Pandas。检查那里是否已在以后的版本中解决。