2016-02-28 122 views
0

我已经放在一起使用这个yahoo_finance api的web-scraper。当我运行该程序,并得到了近10年来每天的数据,以下错误:Python:雅虎财务超时错误

YQLQueryError: Query failed with error: "'Results may be truncated because the run exceeded the allowed max response timeout of 30000ms.'"

此错误出现有时在API的Share.get_historical方法。

任何人都可以提供一些见解,为什么发生这种情况,我可以探索任何可能的补救措施?

+0

可能是因为您的API调用一次请求太多数据。尝试将其分解为更小的请求(每次可能需要1年的数据)。 –

回答

1

为什么会发生?

因为“运行”超过了雅虎设置的限制30秒。据推测这是因为你正在申请大量的历史数据。我不认为这是一个请求超时,因为我能够获得16年的历史数据,花费大于2分钟才能完成。可能是雅虎内部的东西。

可能的补救措施?

尝试使用较小日期范围进行多个查询,例如, 6个月,并在您的Python应用程序中整理结果。

+0

你知道为什么它有时会发生吗?我在get_historical()调用之前和之后都有时间戳,这些调用在时间大于30s时显示成功。 –

+0

@RayFoo:对于相同的查询是否总是失败?我不知道。我想这可能是雅虎服务器的负载问题。也许有时候由于其他用户获取所有数据而太忙,并且系统中某处存在内部超时。但这只是一个猜测。您需要在应用程序中处理它。 – mhawke