Python 3.6 请求时间太长
Python 3.6 请求时间太长
我试图使用requests来从NPI API中获取信息,但平均需要超过20秒才能获取到信息。如果我尝试通过Web浏览器访问,只需要不到一秒钟的时间。我对这方面还比较新手,非常感谢任何帮助。这是我的代码:\n
import json import sys import requests url = "https://npiregistry.cms.hhs.gov/api/?number=&enumeration_type=&taxonomy_description=&first_name=&last_name=&organization_name=&address_purpose=&city=&state=&postal_code=10017&country_code=&limit=&skip=" htmlfile=requests.get(url) data = htmlfile.json() for i in data["results"]: print(i)
Python 3.6中的请求太长
这可能是由于响应格式不正确,或者由于requests
花费的时间超过了必要的时间来设置请求。为了解决这些问题,继续阅读:
服务器响应格式不正确
可能的问题是响应解析实际上是有问题的。您可以通过不读取从服务器接收到的响应来检查此问题。如果代码仍然很慢,那么这不是您的问题,但如果问题得到解决,那么问题可能在于解析响应。
要解决这些问题,请尝试:
r = requests.get(url) r.raw.chunked = True # 修复问题1 r.encoding = 'utf-8' # 修复问题2 print(response.text)
设置请求时间过长
这主要适用于连续发送多个请求的情况。为了防止requests
每次都要设置连接,您可以利用requests.Session
。这确保与服务器的连接保持打开和配置,并且还作为一个很好的功能持久化cookie。尝试这样做(来源):
import requests session = requests.Session() for _ in range(10): session.get(url)
无法解决您的问题?
如果这些方法不能解决您的问题,我收集了一些其他可能的解决方案这里。