一, 使用普通请求
for i in range(10):
url=f'https://www.baidu.com/s?wd=Python%20%E4%B8%8D%E7%94%A8import%20%E7%9B%B4%E6%8E%A5&pn={i}0'
task = requests.get(url)
print('当前时间:%s' % time.time())
结果
当前时间:1620280819.033647
当前时间:1620280819.2272892
当前时间:1620280819.633594
当前时间:1620280819.795841
当前时间:1620280819.954043
当前时间:1620280820.1537778
当前时间:1620280820.314548
当前时间:1620280820.473996
当前时间:1620280820.6532211
当前时间:1620280820.814378
整体运行时间约1.78s
二, 使用aiohttp
import time
import asyncio
from aiohttp import ClientSession
tasks = []
async def h(url):
async with ClientSession() as session:#给所有的请求,创建同一个session
async with session.get(url) as response:
# print(response)
print('当前时间:%s' % time.time())
return await response.read()
def run():
for i in range(10):
url=f'https://www.baidu.com/s?wd=Python%20%E4%B8%8D%E7%94%A8import%20%E7%9B%B4%E6%8E%A5&pn={i}0'
task = asyncio.ensure_future(h(url))
tasks.append(task)
result = loop.run_until_complete(asyncio.gather(*tasks))
if __name__ == '__main__':
loop = asyncio.get_event_loop()
run()
结果
当前时间d:1620281040.7897348
当前时间d:1620281040.79268
当前时间d:1620281040.795146
当前时间d:1620281040.797033
当前时间d:1620281040.800425
当前时间d:1620281040.803301
当前时间d:1620281040.809391
当前时间d:1620281040.812534
当前时间d:1620281040.820011
当前时间d:1620281040.8339899
整体运行时间约0.044s
目测快了40多倍
网友评论