TooManyRequests Overpass错误

时间:2017-04-26 13:56:43

标签: python overpass-api

我正在使用overpy来查询Overpass API,并且数据的性质使我有很多查询要执行。我遇到了429 OverpassTooManyRequests例外,我正试图遵守规则。我已尝试引入time.sleep方法来隔离请求,但我没有依据程序在继续之前等待多长时间。

我发现这个链接提到了“Retry-after”标题:
How to avoid HTTP error 429 (Too Many Requests) python

有没有办法在overpy响应中访问该标头?我已经浏览过文档和源代码,但是没有什么能让我访问该标题,所以我可以暂停查询,直到再次这样做是可以接受的。

我正在使用Python 3.6和overpy 0.4。

3 个答案:

答案 0 :(得分:1)

也许这并不是您要找的答案,但是我遇到了同样的问题,并通过使用docker托管我自己的OSM数据库服务器来解决了这个问题。只需克隆存储库并按照说明进行操作即可:

https://github.com/mediasuitenz/docker-overpass-api

答案 1 :(得分:0)

来自http://overpass-api.de/command_line.html

请确认您没有单一的“失控”。要求占用所有资源。

答案 2 :(得分:0)

在确认我没有失控的查询后,我已经接受了彼得的建议,并为TooManyRequests异常添加了一个等待30秒并再次尝试的捕获。这似乎是一个直接的解决方案。

我还会向OverPy的发起人提出一个问题,建议根据mmd的建议进行评估/ api / status的增强功能。