Python如何使用多进程加速获取请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
以上是关于Python如何使用多进程加速获取请求的主要内容,如果未能解决你的问题,请参考以下文章
如何多线程(多进程)加速while循环(语言-python)?