python asyncio要选择使用 windows的事件循环策略
# -*- coding:utf-8 -*-
import aiohttp
import asyncio
import platform
# 事件循环策略有关,windows 需要选择使用 windows的事件循环策略,注意W是大写
if 'Windows' in platform.platform():
policy = asyncio.WindowsSelectorEventLoopPolicy()
asyncio.set_event_loop_policy(policy)
# 或者使用
# import sys
# if sys.version_info[0] == 3 and sys.version_info[1] >= 8 and sys.platform.startswith('win'):
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
async def main():
async with aiohttp.ClientSession() as session:
async with session.get('http://www.huanghepiao.com') as response:
print('Status',response.status)
print('Content-type:',response.headers['content-type'])
html = await response.text()
print('Body:',html[:300],'...')
if __name__ == '__main__':
asyncio.run(main())