javascript - Puppeteer 无法捕获所有网络请求
问题描述
我正在使用 puppeteer 捕获页面中的所有网络请求并从请求中提取标头列表。我主要对广告请求感兴趣。这是我使用的代码
const browser = await puppeteer.launch({
headless: true,
defaultViewport: { width: 1600, height: 800 },
args: ['--disable-web-security', '--disable-features=IsolateOrigins,site-per-
process']});
const page = await browser.newPage();
await page.setViewport({ width: 1600, height: 800 });
const client = await page.target().createCDPSession();
await client.send('Network.clearBrowserCookies');
await client.send('Network.clearBrowserCache');
await page.setCacheEnabled(false);
await page.setRequestInterception(true);
const results=[];
page.on('request', (request) => {
const information = {
url: request.url(),
headers: request.headers(),
};
results.push(information);
request.continue();
});
page.on('requestfinished', async (request) => {
const response = await request.response();
const responseHeaders = response.headers();
const headers = Array.from(request.headers());
headers.concat(Array.from(responseHeaders));
const information = {
url: request.url(),
headers,
};
results.push(information);
});
page.on('response', async (response) => {
const information = {
url: response.url(),
headers: response.headers(),
};
results.push(information);
});
const url='https://www.javatpoint.com/php-tutorial';
await page.goto(url, {
waitUntil: 'networkidle0',
timeout: 0,
});
但是,与代码捕获的内容相比,我可以看到浏览器中的请求数量至少是 10 倍。视口也永远不会设置为 1600*800
解决方案
推荐阅读
- vuejs2 - 如何动态设置类名?
- javascript - 创建带参数的 Promise
- java - 当从另一个类调用使用它的方法时,为什么自动装配对象为空?
- button - 角度日期选择器未显示在 mat-menu 中
- swift - 在 Swift 中使用 available
- python - 无法使用 pip install spacy 安装 spacy
- javascript - 如何复制 JavaScript 生成的文本?
- pandas - 分解时间间隔并将它们分配给相应的时间
- vue.js - 安装 Nuxt.js 失败
- python - 如何将flask_jwt_extended 与蓝图一起使用?