来自 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。检查那里是否已在以后的版本中解决。