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

pyppeteer开启DEBUG日志运行失败,如何正确输出完整请求且保证代码可用

问题解答

1. 正确配置日志同时保证代码正常运行

你之前的代码报错是因为logging.basicConfig(level=logging.DEBUG)修改了全局根日志器的级别,会把websockets库的底层调试日志也一并开启,websockets部分调试日志的输出时机和pyppeteer的连接关闭逻辑冲突,导致连接异常报错。
正确的配置方式是仅针对需要的pyppeteer日志器单独配置,不修改全局根日志器,示例代码如下:

import asyncio
from pyppeteer import launch
import logging

# 仅配置pyppeteer连接相关的日志器
pyppeteer_conn_logger = logging.getLogger('pyppeteer.connection')
pyppeteer_conn_logger.setLevel(logging.DEBUG)
# 添加独立的控制台输出处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter('[%(levelname)s:%(name)s] %(message)s'))
pyppeteer_conn_logger.addHandler(console_handler)
# 禁止日志向上传播到根日志器,避免和其他模块的日志配置冲突
pyppeteer_conn_logger.propagate = False

async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('https://example.com')
    await page.screenshot({'path': 'example.png'})
    await browser.close()

asyncio.get_event_loop().run_until_complete(main())

这样既可以打印pyppeteer的请求/响应日志,也不会触发连接异常的问题。

2. 完整展示websocket请求内容,避免截断

websockets库默认会对长度超过阈值的消息内容做截断处理,有两种解决方式:

方式一:修改websockets库的截断阈值

在导入任何依赖websockets的模块前,设置环境变量调整最大允许打印的消息长度:

import os
# 单位为字节,这里设置为1MB,可根据需求调整
os.environ['WEBSOCKETS_DEBUG_MAX_PAYLOAD_SIZE'] = '1048576'

# 再导入后续模块
import asyncio
from pyppeteer import launch
import logging

方式二:自行监听pyppeteer连接事件打印完整消息

如果不想修改环境变量,可以直接hook pyppeteer的收发消息方法,自行打印完整内容,不受websockets日志的截断规则限制:

from pyppeteer.connection import Connection

# hook发送逻辑,打印完整请求
original_send = Connection.send
async def patched_send(self, msg, *args, **kwargs):
    print(f"[SEND FULL] {msg}")
    return await original_send(self, msg, *args, **kwargs)
Connection.send = patched_send

# hook接收逻辑,打印完整响应
original_recv = Connection._recv
async def patched_recv(self, *args, **kwargs):
    msg = await original_recv(self, *args, **kwargs)
    print(f"[RECV FULL] {msg}")
    return msg
Connection._recv = patched_recv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:15:04