#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 — отличный улов. Я обновил информацию.