CoderCastrov logo
CoderCastrov
Прокси

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

Как использовать прокси с Puppeteer в Node.js?
просмотров
2 мин чтение
#Прокси

Привет, в этой статье я подробно опишу, как использовать прокси при парсинге с помощью Puppeteer и Node.js, чтобы избежать блокировки серверов и обеспечить хорошую репутацию вашего IP-адреса. Мы будем использовать ротацию прокси, чтобы облегчить временную смену IP-адресов. В этом уроке вам понадобятся следующие инструменты:

  • Список адресов прокси, которые можно получить бесплатно на Private Proxy
  • Установленные Puppeteer и ProxyChain в вашем проекте.

1. Получение списка прокси

Если у вас уже есть список адресов прокси, вы можете пропустить этот шаг. В противном случае, я рекомендую вам использовать список на Private Proxy. Для этого:

  • Зарегистрируйтесь на сайте Private Proxy.
  • Воспользуйтесь пробным периодом, который будет более чем достаточным для этого урока.

Затем перейдите на вкладку "Мои прокси" и нажмите на одну из позиций.

Список предложений

Там вы найдете список прокси, которые можно использовать.

Список прокси

Скопируйте этот список в какое-нибудь место. Как вы поняли, он будет нам полезен в будущем.

2. Установка Puppeteer

npm i puppeteer

3. Установка Proxy Chain

npm i proxy-chain

3. Настройка

Импортируйте в ваш файл, где используется Puppeteer, в моем случае это index.jsimport

Импорт Proxy Chain и Puppeteer

const puppeteer = require('puppeteer');
const proxyChain = require('proxy-chain');

Реализация

async function main() {
    // Список прокси
    const списокПрокси = [
                'http://skrll:au4....',
                ' http://skrll:au4....',
                ' http://skrll:au4....',
                ' http://skrll:au4....',
                ' http://skrll:au4....',
     ];
    
    const старыйUrlПрокси = списокПрокси[Math.floor(Math.random() * (списокПрокси.length))];
    const новыйUrlПрокси = await proxyChain.anonymizeProxy(старыйUrlПрокси);
    
    const браузер = await puppeteer.launch({
            headless: true,
            ignoreHTTPSErrors: true,
            args: [
              `--proxy-server=${новыйUrlПрокси}`,
              `--ignore-certificate-errors`,
              `--no-sandbox`,
              `--disable-setuid-sandbox`
            ]
     });
    const страница = await браузер.newPage();
    await страница.authenticate();

    // 
    // ваш код здесь
    //
     
    // закрыть цепочку прокси
    await proxyChain.closeAnonymizedProxy(новыйUrlПрокси, true);
}

main();

Мы подошли к концу этого руководства, надеюсь, вам понравилось и оно соответствует вашим ожиданиям. Не забудьте поставить лайк и подписаться, если вам понравилось.