Aiohttp带代理发起异步GET请求不执行后续代码问题求助
排查解决步骤
- 确认异步逻辑是否正确启动:aiohttp的异步代码必须运行在asyncio事件循环中,若你当前写的异步逻辑没有被封装到
async def声明的函数中,且外层没有调用asyncio.run(你的异步函数名()),代码根本不会执行,自然没有任何输出。 - 先验证代理本身可用性:用requests等同步库单独测试你用到的代理地址能否正常访问目标站点,排除代理本身无效的问题。
- 调整超时配置:你当前设置的超时时间仅为1秒,代理转发请求本身会产生额外延迟,若代理节点延迟较高、或目标站点响应较慢,请求会直接超时进入异常分支,不会执行
await resp.read()后的逻辑,可先将超时调整为5-10秒测试。 - 检查代理拼接格式是否正确:你通过
f"http://{line}"拼接代理地址,若line本身已经携带http:///https://前缀,最终代理地址会变成重复前缀的无效格式;如果代理需要身份认证,line需要符合用户名:密码@代理IP:端口的格式,否则会直接连接失败。 - 替换目标站点排查连通性:若你当前所处网络环境本身无法正常访问Google,哪怕代理可用,请求也会失败,可先将请求目标替换为https://www.baidu.com等国内可正常访问的站点,排除目标站点连通性干扰。
- 完善异常日志定位问题:你当前仅打印异常对象本身,很多网络异常的报错信息不完整,可引入traceback模块打印完整异常栈,修改异常分支代码为:
import traceback except Exception as e: print(f'Error: {e}') traceback.print_exc()
即可看到具体报错步骤和完整原因。
- 避免变量名冲突:你代码中用了内置函数
sum作为计数变量名,会覆盖内置方法,虽然不会直接导致请求不执行,但建议替换为count等自定义变量名避免未知问题。
内容的提问来源于stack exchange,提问作者user14353062
相关产品推荐
相关产品推荐

