从网络选项卡捕获 Websocket 消息

6 chromium puppeteer

我正在尝试使用 puppeteer 读取 websocket 消息并将它们放入字符串中以输出到控制台。要查看一些 websocket 消息的示例,您可以访问代码中下面提供的链接,然后按照括号内的步骤操作。(CTRL+SHIFT+I > 网络 > WS (websocket) > 消息)

var puppeteer = require('puppeteer');

async function run() {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();

    await page.goto('http://powerline.io');
    console.log('navigated successfully');
    page.on('response', response => {
        const isWSS = ['websocket'].includes(response.request().resourceType())

        if (isWSS){
            console.log(isWSS);
            log(response.url());
            response.text().then(log)
        }
    })
}

run();
Run Code Online (Sandbox Code Playgroud)

Yev*_*kov 14

这是一个示例,说明如何捕获它:

var puppeteer = require('puppeteer');

async function run() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('http://powerline.io');
  const cdp = await page.target().createCDPSession();
  await cdp.send('Network.enable');
  await cdp.send('Page.enable');

  const printResponse = response => console.log('response: ', response);

  cdp.on('Network.webSocketFrameReceived', printResponse); // Fired when WebSocket message is received.
  cdp.on('Network.webSocketFrameSent', printResponse); // Fired when WebSocket message is sent.
}

run();
Run Code Online (Sandbox Code Playgroud)

阅读有关网络事件的更多信息。