异步请求百度示例:
import time
import asyncio
from aiohttp import ClientSession
from aiohttp import TCPConnector
import urllib3
urllib3.disable_warnings()
tasks = []
url = "http://www.baidu.com"
async def request(url):
async with ClientSession(connector=TCPConnector(ssl=False)) as session: # ssl关闭ssl证书验证
async with session.get(url) as response:
text = await response.text()
status = response.status
return {"status": status, "text": text}
def run():
for i in range(100): # 循环添加100个任务到任务中
task = asyncio.ensure_future(request(url.format(i)))
tasks.append(task)
loop = asyncio.get_event_loop()
result = loop.run_until_complete(asyncio.gather(*tasks)) # 执行事件循环,并接收执行结果
return result
if __name__ == '__main__':
t = time.time()
ret = run()
print(ret)
print("耗时:", round(time.time() - t, 4), "秒")
网友评论