我正在尝试使用请求从NPI API中提取信息,但它平均需要超过20秒才能获取信息。如果我尝试通过我的网络浏览器访问它,它只需不到一秒钟。我对此很新,任何帮助都将不胜感激。这是我的代码。
purrr (tidyverse)
答案 0 :(得分:0)
这可能是由于响应的格式不正确,或者是由于requests
花费了比设置请求所需的时间更长的时间。要解决这些问题,请继续阅读:
一个可能的问题可能是响应解析实际上是有问题的行。您可以通过不阅读从服务器收到的响应来进行检查。如果代码仍然很慢,那么这不是您的问题,但是如果此问题得以解决,则问题可能出在解析响应上。
要解决这些问题,请尝试:
r = requests.get(url)
r.raw.chunked = True # Fix issue 1
r.encoding = 'utf-8' # Fix issue 2
print(response.text)
这主要适用于连续发送多个请求的情况。为避免每次requests
都必须建立连接,可以使用requests.Session
。这样可以确保与服务器的连接保持打开和配置状态,并且还保留cookie,这是一个不错的好处。试试这个(source):
import requests
session = requests.Session()
for _ in range(10):
session.get(url)
如果那不能解决您的问题,我还收集了其他一些可能的解决方案here。