現在pythonの非同期処理を勉強しております。
そこでasyncioを用いてwebスクレイプをおこなおうと考えていますが、プログラムの挙動が正直理解ができません。
下のプログラムもとに疑問点を書きたいと思います。
良ければ解説してはいただけないでしょうか?
python
1import asyncio 2from aiohttp import ClientSession 3 4async def hello(url): 5 async with ClientSession() as session: 6 async with session.get(url) as response: 7 response = await response.read() 8 print(response) 9 10loop = asyncio.get_event_loop() 11loop.run_until_complete(hello("http://httpbin.org/headers"))
async を先頭につけている関数が非同期処理される箇所と考えているのですが、
async with ClientSession() as session:
async with session.get(url) as response:
が非同期上どのような動きになっているのかがよくわかりません。
awaitさせる時、asyncがついてる関数が呼ばれてるなと感じているので、
外部からの非同期に対応したモジュール(ClientSessionなど)にasyncをつけてawaitで実行しているという考え方でしょうか?
非常にわかりにくい質問ですみません。色々サイトを見て回ったのですが、どうしてもよくつかめなかったので質問いたしました。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/02 04:20