import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main(urls):
async with aiohttp.ClientSession() as session:
tasks = [fetch(session, url) for url in urls]
responses = await asyncio.gather(*tasks)
return responses
if __name__ == "__main__":
# 假设我们有1000个URL需要请求
urls = [f"http://example.com/{i}" for i in range(1000)]
# 运行异步主函数
loop = asyncio.get_event_loop()
results = loop.run_until_complete(main(urls))
# 打印结果(这里只打印前5个响应的长度)
for i, result in enumerate(results[:5]):
print(f"Response {i} length: {len(result)}")
asyncio
和 aiohttp
库来处理并发请求。asyncio
是 Python 的异步 I/O 框架,而 aiohttp
是一个支持异步 HTTP 请求的库。fetch
函数:这是一个异步函数,用于发送 HTTP GET 请求并返回响应内容。main
函数:这是主异步函数,它创建一个会话,并为每个 URL 创建一个任务列表,然后使用 asyncio.gather
并发执行这些任务。__main__
块中,我们生成了 1000 个 URL,并调用 main
函数来并发请求这些 URL。最后,我们打印前 5 个响应的长度作为示例。这段代码展示了如何使用 Python 的异步编程模型来并发处理大量 HTTP 请求。
上一篇:python 多维数组
下一篇:python中%和//的区别
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站