@alexcupert
Web + QA Engineer

Как использовать прокси с Puppeteer?

Добрый день, возникла необходимость спарсить большое кол-во инфы с одного сайта. На сайте имеется порядка 500 тысяч страниц. Я решил для этого использовать Puppeteer + Electron + немного прикладных методов. Но столкнулся с проблемой что через некоторое время, сайт банит по IP на час (не полностью банит, но зарегистрировать авторег уже не получается, а на один аккаунт действует ограничение). Мне необходимо было на каждый переход по ссылке менять мой IP, или хотя бы прописывать перебор этих прокси самостоятельно при возникновении ошибки. Посмотрев документацию Puppeteer, понял что он даёт только единственную возможность - поставить прокси через конфиг (... args:['--proxy-server=*proxy*']) и только на старте браузера. Я решил воспользоваться аддонами (puppeteer-proxy, puppeteer-page-proxy, и т.п.) но то ли из-за моей криворукости, или какой либо другой проблемы, они упорно не хотели работать как мне надо (модуль вроде и подключался, и не выдавал ошибок, но когда доходило дело до подключения моих прокси, сайт отваливался по ошибке ERR: FAILED, в консоль выводило промис с ошибкой, но пофиксить никак не получалось). Вот отрывок того что я пробовал использовать, если надо будет, могу скинуть в комментариях весь код
let scrape = async () => {
        let browser = await puppeteer.launch({headless: false})
        let page = await browser.newPage()

        await page.setRequestInterception(true);

        page.on('request', async (request) => {
            await proxyRequest({
                page,
                proxyUrl: 'http://127.0.0.1:3000',
                request,
            });
        });
//дальше идёт скрипт парсинга
  • Вопрос задан
  • 372 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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