HistoryART
@HistoryART
Молодой и дерзкий

Как обойти блокировку при парсинге (puppeteer)?

Доброй ночи. Скажите пожалуйста, какие условия нужно соблюдать во избежание бана и как исправить если уже ошибся? Впн включил, перезапустил скрипт, но один фиг бан. Что мне делать? Через обычный браузер никаких признаков бана.

Вот ошибка:


403 Forbidden
nginx










Вот код (Лог выдаёт содержимое тела, а там как-раз ошибка из-за ограниченного доступа):

async function Scrap(query, type) {

        const browser = await puppeteer.launch();

        const page = await browser.newPage();

        await page.goto(`https://www.rusprofile.ru/search?query=${encodeURI(query)}&search_inactive=0&type=${type || 'ul'}`, { waitUntil: 'domcontentloaded' });

        await page.waitForSelector('body');

        const result = await page.evaluate(() => {

            return document.body.innerHTML;

        });

        console.log(result);

        browser.close();

        return result

}


Спасибо.
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight Куратор тега JavaScript
https://sitecoder.blogspot.com
1. Отсутствующий реферер.
2. Кривой useragent.
3. Прямой запрос на поиск - запретили.
4. Или делают проверку токена на валидацию "прозрачной" пройденной ajax-авторизации для гостей.
5. Или проверяют наличие или свойства некого системного объекта, который отличается от браузерного при парсинге.
Ответ написан
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Сначала скрыть сигнатуры безголового (https://www.npmjs.com/package/puppeteer-extra-plug... если вдруг не поможет, сравнить заголовки с браузером, посмотреть скрипты.
Ответ написан
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор
Всё просто, как и сказали выше - скрыть всю инфу о том, что это headless браузер и сделать окружение абсолютно таким же, как и в реальном браузере.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы