這是aiohttp使用的最簡單的例子html
import aiohttp import asyncio async def main(): #咱們獲得一個session會話對象,由ClientSession賦值獲得 async with aiohttp.ClientSession() as session: #使用session.get方法獲得response(response是一個CilentResponse對象) async with session.get("https://baidu.com") as response: print(response.status) print(await response.text) loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close()
要注意的是因爲這是異步庫,要實現異步必須所有使用async/await 異步語法
其實對於session對象的操做好比get,post得到json數據等等http方法的使用和在requests裏使用都是十分類似的web
async with session.get(url, params = dict) as response:
注意的是aiohttp會在發送請求前標準化URL。 域名部分會用IDNA 編碼,路徑和查詢條件會從新編譯(requoting)。若是服務器須要接受準確的表示並不要求編譯URL,那標準化過程應是禁止的。 禁止標準化能夠使用encoded=True:編程
await session.get(URL('http://example.com/%30', encoded=True))
await resp.text(encoding='utf-8')
await response.read() await response.text() await response.json()
await response.content.text()
return 信息json
import aiohttp import asyncio async def main(): # 好像必須寫一個併發數,不然沒法return async with asyncio.Semaphore(5): async with aiohttp.ClientSession() as session: async with session.get("https://baidu.com") as html: response = await html.text(encoding = 'utf-8') return response loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close()