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

如何在Puppeteer中禁用指定WebSocket连接?

问题:Puppeteer中阻止指定WebSocket连接以提升抓取速度

我正在使用Puppeteer抓取页面,页面存在多个WebSocket连接,其中一个视频流连接严重拖慢处理速度(我在Google Cloud Function中运行,速度至关重要),需要阻止该指定连接。

解决方案思路

  • 阻止访问该URL
  • 连接建立后中断它

已尝试的操作

  • 阻止URL方案:使用page.on('request', () => {})无法捕获WebSocket请求,运行以下代码仅能打印除WebSocket外的所有连接:
await page.setRequestInterception(true);
page.on('request', async (request) => {
    console.log(request.url());
})
  • 中断已建立连接方案:暂未找到可行方案,目前能通过以下代码捕获所有WebSocket连接的创建事件并打印URL,但不清楚如何断开这些连接:
const session = await page.target().createCDPSession();

const subscribe = async (session: CDPSession) => {
  session.on('sessionattached', (s) => {
    subscribe(s);
  });

  session.send('Network.enable');

  session.on('Network.webSocketCreated', (payload) => {
    console.log('webSocketCreated', payload.url)
  })

  session.send('Runtime.runIfWaitingForDebugger');
}

await session.send('Target.setAutoAttach', {
  autoAttach: true,
  flatten: true,
  waitForDebuggerOnStart: true,
});

subscribe(session);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:17:44