我如何使用Node.js(Puppeteer)监视网络活动

时间:2019-04-02 14:33:41

标签: node.js google-chrome firefox networking puppeteer

我正在使用Nodejs和firefox-puppeteer构建应用程序,并且试图监视网络流量,以便我可以读取标头,并且如果标头与我的Regex匹配,则会在终端上打印一条消息。

我曾尝试过伪造者:page.setRequestInterception(value) 但这只会在找到标头之一后立即停止应用程序,程序会崩溃

欢迎任何建议 预先感谢

1 个答案:

答案 0 :(得分:0)

您无需通过page.setRequestInterception启用请求拦截来侦听网络活动(您可能想结帐request.continue以获得有关该主题的更多信息)。

要仅侦听网络响应,可以侦听applicationId事件。这是一些示例代码:

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(); })(); 标头中打印包含字符串javascripthtml的所有URL。