猿问

需要 Future 或协程 - asyncio

我正在尝试异步加载网页内容。我使用过requests_html,因为我在服务器上安装它时遇到一些问题所以我使用asyncio


@asyncio.coroutine

async def extract_feature():

    try:

        count = 0

        key = ''

        loop = asyncio.get_event_loop()

        response = await loop.run_in_executor(None, requests.get, link)

        soup = BeautifulSoup(response, "html.parser")

        return soup

loop = asyncio.get_event_loop()

result = loop.run_until_complete(extract_feature)

但这会引发A Future 或 coroutine is required。


要提到的一件事是我使用的是不支持运行的Python 3.5.0 (v3.5.0:374f501f4567) 。


红糖糍粑
浏览 92回答 1
1回答

狐的传说

您需要extract_feature在将其传递给之前致电run_until_complete,即:result = loop.run_until_complete(extract_feature())此外,asyncio.coroutine装饰器不应该与已经定义为的函数一起使用async def——忽略它即可。
随时随地看视频慕课网APP

相关分类

Python
我要回答