Puppeteer 加载页面时如何获得孔响应
当我使用Puppeteer 加载页面时如何获得孔响应,puppeteer,Puppeteer,当我使用page.todo('https://www.alipay.com/“并使用page.on('response',res=>{console.log(res)})侦听响应事件。没有响应 但事实上,加载页面时有几个http请求,如下所示: 我应该如何获得这些请求和响应 我注意到屏幕截图中的一些pic请求是CSS样式的代码,如背景图像,这些请求是否不能在事件“response”下侦听 这是我的密码: 'use strict'; const puppeteer = require('pupp
page.todo('https://www.alipay.com/“
并使用page.on('response',res=>{console.log(res)})侦听响应事件。
没有响应
但事实上,加载页面时有几个http请求,如下所示:
我应该如何获得这些请求和响应
我注意到屏幕截图中的一些pic请求是CSS样式的代码,如背景图像
,这些请求是否不能在事件“response”下侦听
这是我的密码:
'use strict';
const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iPhone = devices['iPhone 6'];
(async () => {
const browser = await initBrowser();
const page = await openPage(browser, 'https://www.alipay.com');
page.on('response', res => {
console.log('response: ', res);
});
return browser.close();
})();
async function initBrowser() {
return await puppeteer.launch({ headless: true });
}
async function openPage(browser, url) {
const page = await browser.newPage();
try {
await page.emulate(iPhone);
await page.goto(url);
} catch (e) {
console.log(e);
page.close();
return null;
}
return page;
}
要获取页面请求,必须将
page.setRequestInterception
设置为true
然后在request
事件中,每个请求都将被拦截,并且可以被阻止或继续
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
console.log(interceptedRequest.url()); // print out the request url
interceptedRequest.continue(); // don't block the request
});
await page.goto('https://example.com');
代码在导航到url之前不会侦听响应,
page.on('request',res=>console.log(res));
应在导航到url之前设置
const page = await browser.newPage();
page.on('request', res => console.log(res));
page = await openPage(page, url); // <-- pass in page here instead of browser
// because page is now defined
const page=wait browser.newPage();
page.on('request',res=>console.log(res));
页面=等待打开页面(页面,url)//