gpt4 book ai didi

python - 如何使用 Http.Client 在 Python 中加速多个连续的 http 请求

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:43 28 4
gpt4 key购买 nike

我想从大约 10000 页的多个页面中获取数据,其中包含数字数组。但是一个接一个要花很长时间,而且我是 Python 的新手,所以我不太了解这种语言的多线程和异步

代码运行良好,它获取了预期的所有数据,但执行此操作需要几分钟时间。而且我知道如果我每次做的不仅仅是一个请求,它可能会完成得更快

import http.client
import json

def get_all_data():
connection = http.client.HTTPConnection("localhost:5000")
page = 1
data = {}

while True:
try:

api_url = f'/api/numbers?page={page}'
connection.request('GET', api_url)
response = connection.getresponse()

if(response.status is 200):
data[f'{page}'] = json.loads(response.read())['numbers']
items_returned = len(data[f'{page}'])
print(f'Por Favor, Aguarde. Obtendo os Dados... Request: {page} -- Itens Retornados: {items_returned}')
page += 1
if items_returned == 0 or items_returned == None :
break
except:
connection.close()

print('Todas as Requisições Concluídas!')
return data

如何重构此代码以一次按顺序执行多个请求而不是一个接一个?

最佳答案

基本上有三种方法可以完成这种工作,多线程、多处理和异步方式,正如 ACE 所提到的,页面参数存在是因为服务器动态生成模板,并且由于数据库更新,页面数量可能会随时间变化.最简单的方法是批处理作业,并尝试将每个批处理放入一个 try 异常 block 中,并分别处理最后一部分(一个批处理不够)。您可以将每个批处理中的作业数设置为变量并尝试不同的解决方案。

关于python - 如何使用 Http.Client 在 Python 中加速多个连续的 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54140745/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com