我试图更改我的请求url,并在响应中看到新的url。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
if (interceptedRequest.url().includes('some-string')) {
interceptedRequest.respond({
status: 302,
headers: {
url: 'www.new.url.com'
},
})
}
interceptedRequest.continue()
});
page.on('response', response => {
console.log(response.url())
})
await page.goto('www.orginal.url.com')
// some code omitted
})();在interceptedRequest.respond方法中,我试图更新url的值。最初我试着:
interceptedRequest.continue({url: 'www.new.url.com'})
但这种方式在目前版本的木偶词典中并没有得到长期的支持。我本来希望在响应中得到http://www.new.url.com/,但实际上我得到了附加到末尾的http://www.new.url.com/的原始url。
提前感谢您的帮助。
发布于 2022-01-10 14:05:06
这对我有帮助。您需要将url改为位置。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
if (interceptedRequest.url().includes('some-string')) {
interceptedRequest.respond({
status: 302,
headers: {
location: 'www.new.url.com'
},
})
}
});
page.on('response', response => {
console.log(response.url())
})
await page.goto('www.orginal.url.com')
// some code omitted
})();
https://stackoverflow.com/questions/68534788
复制相似问题