【发布时间】:2019-11-13 21:18:29
【问题描述】:
我正在尝试使用 python 包 resuqests_html 异步获取 () 一个 URL 列表,类似于使用 Python 3.6.5 和 requests_html 0.10.0 的 async example in the README。
我的理解是 AsyncHTMLSession.run() 应该与 asyncio.gather() 的工作方式非常相似:你给它一堆 awaitables,它会运行所有这些。不对吗?
这是我正在尝试的代码,我希望它可以获取页面并存储响应:
from requests_html import AsyncHTMLSession
async def get_link(url):
r = await asession.get(url)
return r
asession = AsyncHTMLSession()
results = asession.run(get_link("http://google.com"), get_link("http://yahoo.com"))
但是我得到了这个异常:
Traceback (most recent call last):
File "test.py", line 10, in <module>
results = asession.run(get_link("google.com"), get_link("yahoo.com"))
File ".\venv\lib\site-packages\requests_html.py", line 772, in run
asyncio.ensure_future(coro()) for coro in coros
File ".\venv\lib\site-packages\requests_html.py", line 772, in <listcomp>
asyncio.ensure_future(coro()) for coro in coros
TypeError: 'coroutine' object is not callable
sys:1: RuntimeWarning: coroutine 'get_link' was never awaited
我做错了吗?
【问题讨论】:
标签: python python-3.x asynchronous python-asyncio python-requests-html