我正在使用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。
答案 0 :(得分:1)
也许这并不是您要找的答案,但是我遇到了同样的问题,并通过使用docker托管我自己的OSM数据库服务器来解决了这个问题。只需克隆存储库并按照说明进行操作即可:
答案 1 :(得分:0)
请确认您没有单一的“失控”。要求占用所有资源。
答案 2 :(得分:0)
在确认我没有失控的查询后,我已经接受了彼得的建议,并为TooManyRequests异常添加了一个等待30秒并再次尝试的捕获。这似乎是一个直接的解决方案。
我还会向OverPy的发起人提出一个问题,建议根据mmd的建议进行评估/ api / status的增强功能。