Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
page.on('response', response => {
// Skip http bad statuses.
if (!response.ok()) return;
const headers = response.headers();
// Skip any content that type not application/octet-stream
if (headers['Content-Type'] !== 'application/octet-stream') return;
const buffer = await response.buffer();
// Do what you want
});
await page.goto('https://example.com/some.file');
Network.enable(); и Network.loadingFinished(async (params) => {
let content = await Network.getResponseBody({requestId: params.requestId});
/* ....... */
});1. Не используйте headless-браузер вообще
Почти всё, что может сделать браузер (кроме интерполирования и запуска JavaScript),
3. Ваш друг page.evaluate
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on("console", (m) => console.log(m.text()));
await page.evaluate(function () {
const elem = this.document.documentElement;
elem.addEventListener("click", e => console.log(e.isTrusted));
elem.click();
});
const elem = await page.$('html');
await elem.click();
await browser.close();
})()
4. Распараллеливайте браузеры, а не веб-страницы
Опыт 2 миллионов headless-сессий