Как ждать, пока сопрограмма закончится и продолжит свой результат? - PullRequest
1 голос
/ 01 апреля 2019

У меня есть сопрограмма, отправляющая веб-запросы и обрабатывающая их.В настоящее время я делаю:

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.Но я не нашел краткого примера, чтобы сделать это.Кроме того, я использую requests и , некоторые поиски показывают, что это вызывает проблемы.

...