我如何使用 nodejs (puppeteer) 监控网络 activity
How can i monitor network activity with nodejs (puppeteer)
我正在使用 Nodejs 和 firefox-puppeteer 构建一个应用程序,我正在尝试监控网络流量,以便我可以读取 headers 并且如果 headers 与我的正则表达式匹配我的终端上打印的消息。
我试过木偶师:page.setRequestInterception(value)
但这只会在找到 header 之一时停止应用程序,并且程序将中断
欢迎任何建议
提前致谢
您无需通过 page.setRequestInterception
to listen for network activity (you might want to checkout 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.
中包含字符串 javascript
或 html
的所有 URL
我正在使用 Nodejs 和 firefox-puppeteer 构建一个应用程序,我正在尝试监控网络流量,以便我可以读取 headers 并且如果 headers 与我的正则表达式匹配我的终端上打印的消息。
我试过木偶师:page.setRequestInterception(value)
但这只会在找到 header 之一时停止应用程序,并且程序将中断
欢迎任何建议 提前致谢
您无需通过 page.setRequestInterception
to listen for network activity (you might want to checkout 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.
javascript
或 html
的所有 URL