而不是使用代理,尝试通过Puppeteer捕获原始HTTP请求消息。
这是我正在做的一个基本示例。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.setViewport({ width: 1200, height: 800 })
await page.setRequestInterception(true)
page.on('request', (request) => {
console.log(request) // <-- I want raw HTTP(S) message, not an object
request.continue()
})
page.on('response', (response) => {
console.log('<<', response.status(), response.url())
})
await page.goto('https://www.google.com/')
await browser.close()
})()当我打印出请求时,我得到了表示该请求的Node / JSON对象。
如何获取原始请求消息?
发布于 2021-04-23 00:09:00
@openwonk,你好!
您可以使用以下方式获取原始数据:
page.on('request', async function (request) {
// HTTP method
console.log(request.method());
// Request target, usually a URL
console.log(request.url());
// The HTTP version
// N/A
// HTTP headers
console.log(request.headers());
// Body
console.log(request.postData());
});await page.tracing.start({ path: 'trace.json', categories: ['netlog'] });
await page.goto('http://example.com/', { waitUntil: 'networkidle0' })
const tracing = JSON.parse(await page.tracing.stop());
// Some filtering
const res = await tracing.traceEvents.filter(te => te.name.toLowerCase().includes(`${some_desired_name}`));https://stackoverflow.com/questions/66999704
复制相似问题