ハードコーディングされたページのリストを反復処理して、すべてを順番にダウンロードする関数 download_all があります。しかし、ページの結果に基づいてリストに動的に追加したい場合は、どうすればよいでしょうか? たとえば、最初のページをダウンロードして解析し、結果に基づいて他のページをイベント ループに追加します。
@asyncio.coroutine
def download_all():
first_page = 1
last_page = 100
download_list = [download(page_number) for page_number in range(first_page, last_page)]
gen = asyncio.wait(download_list)
return gen
if __name__ == '__main__':
loop = asyncio.get_event_loop()
futures = loop.run_until_complete(download_all())