Получение Сетевых Данных С помощью Puppeteer: необработанное предупреждение об опасности

#node.js #web-scraping #puppeteer

Вопрос:

Я пытаюсь перехватить данные файлов в сетевом разделе браузера с помощью Puppeteer. Я изменил код из документации (см. Ниже), но получаю ошибку (после сбоя браузера).:

Предупреждение о необработанном обещании: Необработанное обещание отклонено. Эта ошибка возникла либо в результате включения асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch(). Чтобы завершить процесс узла при необработанном отклонении обещания, используйте флаг CLI …

Я хотел бы получить данные JSON без отдельного явного вызова файла, поэтому извлечение URL-адреса JSON не является опцией и должно перехватывать данные при запуске браузера.

 (async () => {
    const browser = await puppeteer.launch({
        headless: false,
        defaultViewport: null
    });
    const page = await browser.newPage();
    await page.setRequestInterception(true);
    page.on('request', (interceptedRequest) => {
        const response = interceptedRequest;

        if (
            response.url().includes('cnni_homepage.json')
        ) {
            console.log(response.body);
            interceptedRequest.continue();
        }
        else { interceptedRequest.abort(); }
    });
    await page.goto("https://edition.cnn.com", { waitUntil: 'networkidle0' });
    await browser.close();
})();
 

Комментарии:

1. UnhandledPromiseRejectionWarning это общая ошибка: вы должны поймать ее, затем распечатать реальную ошибку: .catch(err => console.error(err)) и поделиться ею.

2. этот параметр вашей функции является запросом, а не ответом.

3. @pguardiario — отличный улов. Я обновил информацию.