Я пытаюсь получить все перенаправления домена с помощью api Puppeteer, сохраненные в массиве, прежде чем делать снимок экрана с конечным URL-адресом, но код, который у меня есть, также получает другие перенаправления.
Например, если я goto youtube.com
, тогда мой код будет правильно получать перенаправления 'https://youtube.com/', 'https://www.youtube.com/',
, но он также получит другие перенаправления, такие как doubleclick.net.
Я хочу получить только перенаправления, которые будут происходить в строке URL.
Мне удалось сузить круг с помощью request.resourceType === 'document'
. Как я могу сузить круг вопросов?
Вот код:
// node chrome.js http://youtube.com
const puppeteer = require('puppeteer');
var url = process.argv[2];
(async () => {
const browser = await puppeteer.launch({headless: true, timeout: 30000, ignoreHTTPSErrors: true});
const page = await browser.newPage();
// await page.setRequestInterception(true); // hangs with resourcetype
const urls = [];
page.on('request', request => {
// if (request.resourceType === 'document' || request.resourceType === 'script') {
if (request.resourceType === 'document') {
urls.push(request.url);
request.continue();
}
});
await page.goto(url, {timeout: 20000, waitUntil: 'load'}); //default load
await page.screenshot({path: 'test.jpg', type: 'jpeg', quality: 80, fullPage: false});
console.log(urls);
await browser.close();
})();