Python 如何使用多进程加速获取请求



我有一些代码可以发送 get 请求并返回 93 个参数的列表,我想使用每个参数来发出另一个 get 请求。问题是运行大约需要 15 分钟,我想加快速度。我在请求库中使用会话对象,但这还不够好,所以我想尝试多处理,但我无法解决它。

import requests
params_url = r'URL'
headers = {
  'authorization': 'Token sdfgsdfgsdfg'
}
response = requests.get(params_url, headers = headers)
data = response.json()
params = data['data']
s = requests.Session()
samp_url = s.get(r'SESSION_URL',headers=headers)
for param in params:
    ent_url = r'SESSION_URL'+param+r'&RESULT_FORMAT'
    resp = s.get(ent_url, headers = headers)
    print(resp)

目前作为测试,我只是打印响应代码,但我需要对数据执行其他操作(基本上只是将它们全部合并到一个数据帧中(。每个响应代码是 200,这很好。实现多处理以加快速度的最佳方法是什么?

你可以试试joblib

from joblib import Parallel, delayed
def p_me(param,s):
    ent_url = r'SESSION_URL'+param+r'&RESULT_FORMAT'
    resp = s.get(ent_url, headers = headers)
return resp
w = Parallel(n_jobs=-1,verbose=0)(delayed(p_me)(param,s) for param in params)

最新更新