gpt4 book ai didi

python - 运行时警告 : Enable tracemalloc to get the object allocation traceback with asyncio. sleep

转载 作者:太空狗 更新时间:2023-10-30 00:58:19 36 4
gpt4 key购买 nike

尝试使用信号量来控制异步请求以控制对我的目标主机的请求,但我收到以下错误,我认为这意味着我的 asycio.sleep() 实际上并未休眠.我怎样才能解决这个问题?我想为每个目标 URL 的请求添加延迟。

错误:

RuntimeWarning: coroutine 'sleep' was never awaited
Coroutine created at (most recent call last)
File "sephora_scraper.py", line 71, in <module>
loop.run_until_complete(main())
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 571, in run_until_complete
self.run_forever()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
handle._run()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "makeup.py", line 26, in get_html
asyncio.sleep(delay)
asyncio.sleep(delay)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

代码:

import sys
import time
import asyncio
import aiohttp

async def get_html(semaphore, session, url, delay=6):
await semaphore.acquire()
async with session.get(url) as res:
html = await res.text()
asyncio.sleep(delay)
semaphore.release()
return html

async def main():
categories = {
"makeup": "https://www.sephora.com/shop/"
}
semaphore = asyncio.Semaphore(value=1)
tasks = []
async with aiohttp.ClientSession(loop=loop, connector=aiohttp.TCPConnector(ssl=False)) as session:
for category, url in categories.items():
# Get HTML of all pages
tasks.append(get_html(semaphore, session, url))
res = await asyncio.gather(*tasks)

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

最佳答案

asyncio.sleep(delay)

将其更改为:

await asyncio.sleep(delay)

asyncio.sleep 是一个 coroutine值得期待。

关于python - 运行时警告 : Enable tracemalloc to get the object allocation traceback with asyncio. sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088263/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com