python 多线程批量请求同步执行
可以使用Python中的concurrent.futures模块来实现多线程批量请求同步执行。
具体实现步骤如下:
-
创建ThreadPoolExecutor对象,指定线程池大小。
-
定义一个请求函数,接受请求参数,发送请求并返回结果。
-
使用submit方法向线程池中提交任务,每个任务代表一个请求。
-
使用as_completed方法获取已完成的任务,并获取其返回结果,进行处理。
示例代码:
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
# 请求函数
def request(url):
response = requests.get(url)
return response.text
# 构造请求列表
url_list = [
'https://www.baidu.com',
'https://www.sina.com.cn',
'https://www.jd.com',
'https://www.taobao.com',
'https://www.qq.com'
]
# 创建线程池
executor = ThreadPoolExecutor(max_workers=5)
# 提交任务
tasks = [executor.submit(request, url) for url in url_list]
# 处理结果
for future in as_completed(tasks):
result = future.result()
print(result)
在上面的示例代码中,我们首先定义了一个request函数,该函数接受一个url参数,发送请求并返回响应内容。
然后,我们构造了一个url_list列表,其中包含了我们要请求的url地址。
接着,我们创建了一个ThreadPoolExecutor对象,指定了线程池大小为5。
然后,我们使用submit方法向线程池中提交任务,每个任务代表一个请求。
最后,我们使用as_completed方法获取已完成的任务,并获取其返回结果,进行处理。
原文地址: https://www.cveoy.top/t/topic/bMlK 著作权归作者所有。请勿转载和采集!