我正在使用Nodejs和firefox-puppeteer构建应用程序,并且试图监视网络流量,以便我可以读取标头,并且如果标头与我的Regex匹配,则会在终端上打印一条消息。
我曾尝试过伪造者:page.setRequestInterception(value)
但这只会在找到标头之一后立即停止应用程序,程序会崩溃
欢迎任何建议 预先感谢
答案 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();
})();
标头中打印包含字符串javascript
或html
的所有URL。