Задать вопрос
@snitron
Учуcь программировать на Android, IOS и Unity.

Как загрузить страницу полностью с помощью Puppeter?

Когда я загружаю страницу в браузере, она открывается польностью (со всеми данными), а когда через Puppeter со всеми теми же аргументами, загружается как-будто шаблон, причём не наполненный данными. Может быть, на сайте установлена защита от программного входа? И можно ли такую защиту как-нибудь обойти?

Страницу загружаю так:
const puppeteer = require('puppeteer');

        (async () => {
            const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
            const page = await browser.newPage();
            await page.goto('url, {waitUntil: 'load', timeout: 0});
            await page.type('#login', login);
            await page.type('#password', password);
            await page.click('#sub-btn');
            await page.waitForNavigation().catch(() => console.log("catched"));
            await page.goto('url2',  { waitUntil: 'networkidle2' });
            await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});

const mainData = await page.evaluate(() => {
            try{
                return document.documentElement.outerHTML;
            } catch (e) {
                return e.toString();
            }
        });

        res.send(mainData);

        await browser.close();
}
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@snitron Автор вопроса
Учуcь программировать на Android, IOS и Unity.
Оказалось, что был неправильный URL.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
если на быструю руку, то попробуй еще await page.waitFor(5000); чтобы точно все яваскрипты прогрузились и принесли данные с сервера
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы