Python请求库执行get请求所花费的时间比它应该花费的时间要长

Python请求库执行get请求所花费的时间比它应该花费的时间要长,python,python-3.x,get,python-requests,Python,Python 3.x,Get,Python Requests,所以我有这个代码。每当我运行代码,到达第3行时,执行get请求需要整整20秒。没有理由要花这么长时间,而且每次都要花这么长时间。有什么帮助吗 def get_balance(addr): try: r = requests.get("http://blockexplorer.com/api/addr/"+addr+"/balance") return int(r.text)/10000000 except: return "e" 我大部分时间都是这样 >>&

所以我有这个代码。每当我运行代码,到达第3行时,执行get请求需要整整20秒。没有理由要花这么长时间,而且每次都要花这么长时间。有什么帮助吗

def get_balance(addr):
try:
    r = requests.get("http://blockexplorer.com/api/addr/"+addr+"/balance")
    return int(r.text)/10000000
except:
    return "e"

我大部分时间都是这样

>>> def get_balance(addr):
...   try:
...       start = time.time()
...       r = requests.get("http://blockexplorer.com/api/addr/"+addr+"/balance")
...       end = time.time()
...       print(f"took {end - start} seconds")
...       print(r.text, "satoshis")
...       return int(r.text)/100000000
...   except:
...       return "e"
...
>>>
>>> get_balance("1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v")
took 0.7754228115081787 seconds
151881086 satoshis
15.1881086
但如果我连续这么做足够多次,偶尔会出现错误“Bitcoin JSON-RPC:超出工作队列深度。代码:429”


像我一样打印r.text,这可能会显示来自块资源管理器的错误消息。可能是他们已经开始限制您的费率。

我也遇到了同样的问题,但后来才意识到该网站有某些IP限制,@ovicko将其加载到我的浏览器并不需要很长时间?他们可能会歧视您的用户代理。您如何在脚本和浏览器中加载它?如果您在短时间内执行多个请求(即1秒内执行1000个请求),它可能会阻塞。您应该向门户网站的管理员询问这个问题。@ovicko我尝试了不同的URL,并将chrome用户代理添加到了标题中,但仍然需要很长时间(比如20秒)。这是一个怎样的答案?这不能回答我的问题。同样有趣的是,当在我的vps上运行而不是在我的开发计算机上运行时,20秒的等待时间就消失了。我用
时间
制作了类似的程序,并运行了100次-它给了我类似的时间0.3-1.0:)@Qwerty,当你打印r.text时你得到了什么?@Mr.me我得到了承诺的余额,但是仍然需要至少20秒来完成请求如果您在浏览器中执行请求,是否需要20秒来完成请求?