如何使用nodejs(puppeteer)监视网络活动



我正在使用 Nodejs 和 firefox-puppeteer 构建一个应用程序,我正在尝试监控网络流量,以便我可以读取标头,如果标头与我的正则表达式匹配,则在我的终端上打印一条消息。

我试过木偶师:page.setRequestInterception(value)但这只会在应用程序找到标头之一时停止应用程序,并且程序将中断

欢迎任何建议提前致谢

您无需

通过page.setRequestInterception启用请求拦截即可侦听网络活动(您可能需要查看request.continue以获取有关该主题的更多信息(。

若要仅侦听网络响应,可以侦听response事件。下面是一些示例代码:

const puppeteer = require('puppeteer');
const textRegex = /(javascript|html)/; // example regex
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    page.on('response', (response) => {
        const headers = response.headers();
        // example test: check if content-type contains javascript or html
        const contentType = headers['content-type'];
        if (textRegex.test(contentType)) {
            console.log(response.url());
        }
    });
    await page.goto(`...`);
    await page.close();
    await browser.close();
})();

此示例侦听响应并打印在其 Content-Type 标头中包含字符串 javascripthtml 的所有 URL。

最新更新