You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aiohttp、asyncio爬取数据时报Overlapped对象待操作错误如何解决

问题原因
  • 该错误为Windows系统特有的异步IO兼容问题:Python 3.8及以上版本在Windows环境下默认使用ProactorEventLoop事件循环,依赖Windows重叠IO机制实现异步操作。
  • asyncio.run执行完毕后会直接销毁事件循环,此时aiohttp的ClientSession底层连接池还有未完成的后台清理操作,未执行完的重叠IO对象被强制回收就会抛出该错误。
  • 额外注意:你提供的代码存在拼写错误,parse函数定义的参数名为result,但函数内部遍历用的变量是results,会先触发NameError报错,需要先修正该问题。
解决方案
  1. 首先修正parse函数的参数拼写,保证变量名统一:
# 修改前
def parse(result):
# 修改后
def parse(results):
  1. 在代码入口处手动指定Windows平台使用SelectorEventLoop事件循环,规避重叠IO的兼容问题,完整入口代码如下:
if __name__ == "__main__":
    # 仅Windows系统需要添加该配置
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    results = asyncio.run(main(urls))
    parse(results)
  1. 如果修改后仍报错,升级aiohttp到最新版本即可:
    pip install --upgrade aiohttp

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:15:04