我刚刚开始探索这个名为Requests-Html的新库,我刚刚通过Corey Schafer tutorial发现了它,挑战是创建一个包含n个不同请求的异步调用
例如,我们有以下代码,运行时间约为3,6秒:
async def get_delay1():
r = await asession.get("https://httpbin.org/delay/1")
return r
async def get_delay2():
r = await asession.get("https://httpbin.org/delay/2")
return r
async def get_delay3():
r = await asession.get("https://httpbin.org/delay/3")
return r
asession = AsyncHTMLSession()
t1 = time.perf_counter()
results = asession.run(get_delay1, get_delay2, get_delay3)
for result in results:
response = result.html.url
print(response)
t2 = time.perf_counter()
print(t2 - t1)
问题是,如果我想用这个库创建一个500异步请求,我应该怎么做?我不可能需要编写500个不同的函数,对吗
我试图创建一个包含函数生成器的列表,这样我可以自动传递其中的不同函数:
tasks = [get_delay1, get_delay2, get_delay3]
results = asession.run(tasks)
但是我得到了
ERROR`:
asyncio.ensure_future(coro()) for coro in coros
TypeError: 'list' object is not callable
我已经知道怎么做了
创建列表后,我们必须调用
这样,我们确保只将可调用项传递给
run
方法,即列表的元素,而不是列表本身靠
相关问题 更多 >
编程相关推荐