node.js - 我如何使用nodejs(puppeteer)监控网络事件

标签 node.js google-chrome firefox networking puppeteer

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

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

欢迎任何建议 提前致谢

最佳答案

您不需要通过 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 header 中包含字符串 javascripthtml 的所有 URL。

关于node.js - 我如何使用nodejs(puppeteer)监控网络事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55477347/

相关文章:

node.js - 将消息从一个 AWS 队列传输到另一个

node.js - Node - 如何在 --watch 期间运行并行命令?

javascript - Chrome-Extensions Jasmine 测试,未识别 Chrome、onMessage 请求方法

javascript - jQuery UI .sortable .on click 移动项目并保持排序功能

php - Firefox 不缓存图像

firefox - 歌剧蜻蜓与 Firebug

node.js - 在 Linux 上从二进制文件安装 Node 需要哪些 tar 选项?

node.js - 无法在 Node.js 中销毁 Twitter 流

javascript - 页面操作和浏览器操作有什么区别?

jquery one() 在 chrome 中不能正常工作