如何等待协程完成并继续其结果?

时间:2019-04-01 08:16:54

标签: python asynchronous parallel-processing python-requests

我有一个协程发送网络请求并对其进行后期处理。目前我正在做:

async def scrape(url, sess, logging=None):
    # request
    result = sess.get(url, headers=headers(url))
    # process
    if result.ok:
        await(post_process(result.content))

async def main():
    # code here
    for url in urls:
        await asyncio.create_task(scrape(url, sess))

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

问题在于运行缓慢!似乎请求阻塞了循环。如何将请求转到协程并等待其完成?

注意:我用google搜索过。但是我还没有一个简单的例子可以做到这一点。另外,我正在使用requestssome searches表示它正在引起麻烦。

0 个答案:

没有答案