Как использовать прокси с Puppeteer в Node.js?
Привет, в этой статье я подробно опишу, как использовать прокси при парсинге с помощью 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();
Мы подошли к концу этого руководства, надеюсь, вам понравилось и оно соответствует вашим ожиданиям. Не забудьте поставить лайк и подписаться, если вам понравилось.