Як використовувати AdsPower з Puppeteer: повний посібник з налаштування

By Anonymous☉ 3415 Views

Take a Quick Look

Дізнайтеся, як підключити антидетект-браузер AdsPower до Puppeteer для безпечнішої автоматизації багатоакаунтних сценаріїв, парсингу та тестування. Покрокове налаштування та приклади коду.

🔥 Limited-Time Offer! Save extra 10% off on your first monthly plan with code: Anitdetect10

Як використовувати AdsPower з Puppeteer

AdsPower і Puppeteer вирішують різні половини однієї проблеми автоматизації. AdsPower надає ізольовані профілі браузера з унікальними цифровими відбитками, тоді як Puppeteer дає програмний спосіб керувати цими профілями. Разом вони дозволяють автоматизувати багатоакаунтні робочі процеси, завдання парсингу та тестування, не виглядаючи як бот.

Цей посібник проведе вас через повне налаштування: як працює Local API, як запустити профіль, як підключити Puppeteer до нього та як уникнути типових помилок, які порушують з'єднання.

Чому варто поєднувати AdsPower і Puppeteer?

Puppeteer сам по собі потужний, але його легко виявити. Типовий headless-екземпляр Chrome викриває сигнали автоматизації через свій відбиток, заголовки та поведінку. Веб-сайти, які використовують антибот-перевірки, можуть швидко його позначити.

AdsPower змінює рівняння. Кожен профіль працює в ізольованому середовищі з власними параметрами Canvas, WebGL, user agent, часового поясу, мови та інших параметрів відбитка. Коли ви підключаєте Puppeteer до профілю AdsPower, ваша автоматизація успадковує цей реалістичний відбиток замість стандартної сигнатури браузера.

Ця комбінація корисна для:

  • Керування кількома акаунтами продавців електронної комерції без зв'язування акаунтів
  • Парсингу сайтів, які блокують headless-браузери або IP-адреси дата-центрів
  • Виконання автоматизованих дій у соціальних мережах через окремі профілі
  • Тестування веб-додатків у різних географічних умовах та умовах пристроїв
  • Робочих процесів партнерського маркетингу, які потребують різних ідентичностей браузера

Для ширшого порівняння антидетект-браузерів дивіться наш топ-10 антидетект-браузерів, протестованих у 2026 році.

Попередні вимоги

Перед початком переконайтеся, що у вас є:

  1. AdsPower встановлено на Windows, Mac або Linux
  2. Платний план AdsPower — доступ до Local API вимагає платної підписки
  3. Node.js встановлено, версія 16 або новіша
  4. Puppeteer встановлено у вашому проєкті:
npm install puppeteer

Розуміння AdsPower Local API

AdsPower надає Local API, який працює на вашому комп'ютері. Стандартна кінцева точка:

http://local.adspower.net:50325/

Ви також можете використовувати http://localhost:50325/. Якщо адреса зміниться, прочитайте файл local_api, який генерує AdsPower:

  • MacOS: у каталозі підтримки додатків
  • Linux: ~/.config/adspower_global/cwd_global/source/local_api

Усі виклики API приймають параметри запиту як рядки та повертають JSON. Якщо увімкнено перевірку безпеки, додайте заголовок авторизації:

Authorization: Bearer your_api_key

Крок 1: Створіть профіль браузера

Відкрийте настільний додаток AdsPower і створіть новий профіль. Дайте йому назву, виберіть операційну систему та за бажанням призначте проксі. user_id профілю — це те, що ви будете використовувати в кожному виклику API.

Ви можете знайти user_id у списку профілів або викликавши кінцеву точку запиту профілю. Тримайте його під рукою.

Крок 2: Запустіть профіль через Local API

Основна кінцева точка для інтеграції з Puppeteer — /api/v1/browser/start. Вона запускає профіль і повертає адресу WebSocket debug, яка потрібна Puppeteer.

Ось мінімальний приклад Node.js з використанням вбудованого fetch:

const API_BASE = 'http://local.adspower.net:50325';

async function startBrowser(userId) {
  const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}`;
  const response = await fetch(url);
  const result = await response.json();

  if (result.code !== 0) {
    throw new Error(`Не вдалося запустити браузер: ${result.msg}`);
  }

  return result.data;
}

const data = await startBrowser('your_profile_user_id');
console.log(data.ws.puppeteer); // ws://127.0.0.1:xxxx/devtools/browser/xxxxxx

Відповідь містить об'єкт ws з двома кінцевими точками debug:

  • ws.selenium — для автоматизації Selenium
  • ws.puppeteer — для автоматизації Puppeteer

Використовуйте значення puppeteer на наступному кроці.

Крок 3: Підключіть Puppeteer до запущеного профілю

Замість запуску нового браузера за допомогою puppeteer.launch(), використовуйте puppeteer.connect(), щоб приєднатися до вже запущеного профілю AdsPower:

import puppeteer from 'puppeteer';

const browser = await puppeteer.connect({
  browserWSEndpoint: data.ws.puppeteer,
  defaultViewport: null
});

const pages = await browser.pages();
const page = pages[0] || await browser.newPage();

await page.goto('https://example.com');
console.log(await page.title());

Ключова деталь: browserWSEndpoint має бути точно тим рядком ws.puppeteer, який повертає API запуску. Не додавайте та не видаляйте сегменти шляху.

Крок 4: Виконайте автоматизацію на профілі

Після підключення ви можете використовувати повний API Puppeteer. Ось практичний приклад, який відкриває сторінку, чекає на селектор і витягує текст:

const page = await browser.newPage();

await page.goto('https://www.amazon.com', {
  waitUntil: 'domcontentloaded',
  timeout: 60000
});

await page.waitForSelector('#nav-logo-sprites', { timeout: 30000 });

const title = await page.title();
console.log(`Заголовок сторінки: ${title}`);

Для завдань парсингу поєднуйте профіль із резидентним проксі. AdsPower підтримує призначення проксі для кожного профілю, що маскує вашу IP-адресу разом із відбитком. Якщо вам потрібні рекомендації щодо проксі, наш огляд IPRoyal охоплює резидентні, ISP та датацентрові варіанти.

Крок 5: Закрийте браузер і приберіть за собою

Коли ваша автоматизація завершиться, від'єднайте Puppeteer і закрийте браузер AdsPower через API:

await browser.disconnect();

const closeUrl = `${API_BASE}/api/v1/browser/stop?user_id=${userId}`;
await fetch(closeUrl);

Завжди закривайте профілі, які не використовуєте. Неактивні профілі споживають пам'ять і можуть заважати подальшим запускам автоматизації.

Практичний приклад: парсинг з кількома профілями

Поширений випадок використання — парсинг одного сайту з кількох профілів для розподілу навантаження на запити. Ось компактний патерн робітника:

const PROFILE_IDS = ['id_1', 'id_2', 'id_3'];

async function scrapeWithProfile(userId, targetUrl) {
  const data = await startBrowser(userId);
  const browser = await puppeteer.connect({
    browserWSEndpoint: data.ws.puppeteer,
    defaultViewport: null
  });

  const page = await browser.newPage();
  await page.goto(targetUrl, { waitUntil: 'networkidle2' });

  const result = await page.evaluate(() => {
    return document.querySelector('h1')?.innerText || 'Немає заголовка';
  });

  console.log(`Профіль ${userId}: ${result}`);

  await browser.disconnect();
  await fetch(`${API_BASE}/api/v1/browser/stop?user_id=${userId}`);
}

for (const id of PROFILE_IDS) {
  await scrapeWithProfile(id, 'https://example.com');
}

Запускайте профілі послідовно або використовуйте чергу з обмеженою одночасністю. Надто багато одночасних запитів з однієї машини все одно може спровокувати обмеження швидкості, навіть з унікальними відбитками.

Корисні параметри API для робочих процесів Puppeteer

Кілька необов'язкових параметрів кінцевої точки запуску варто знати:

Параметр За замовчуванням Призначення
headless 0 Встановіть 1, щоб запустити профіль у headless-режимі
launch_args - Передайте прапорці Chromium, наприклад, для вимкнення зображень або сповіщень
clear_cache_after_closing 0 Встановіть 1, щоб видаляти кеш після закриття браузера
ip_tab 1 Керує тим, чи відкривається сторінка визначення IP
open_tabs 0 Відкривати або закривати збережені вкладки під час запуску

Приклад з аргументами запуску:

const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}` +
  `&launch_args=["--disable-notifications","--blink-settings=imagesEnabled=false"]`;

Вимкнення зображень може значно прискорити парсинг, коли візуальний контент не потрібен.

Типові проблеми та їх вирішення

Відмова у з'єднанні на localhost:50325

Переконайтеся, що AdsPower запущено і що у вас є платний план. Local API недоступний на безкоштовних акаунтах. Перевірте файл local_api, якщо порт змінився.

Puppeteer підключається, але сторінки порожні

Викличте browser.pages() після підключення. AdsPower може відкрити стандартну вкладку, але якщо її немає, створіть її за допомогою browser.newPage().

Профіль відкривається, але автоматизація не може знайти елементи

Використовуйте реалістичні стратегії очікування. Віддавайте перевагу waitForSelector з явними тайм-аутами, а не фіксованим sleep. Якщо сайт повільний, збільште тайм-аут.

Headless-режим виявляється

Деякі сайти агресивніше знімають відбитки headless Chrome. Якщо ви стикаєтеся з CAPTCHA в headless-режимі, запускайте профіль у звичайному режимі (headless=0) або використовуйте потужніший проксі.

AdsPower + Puppeteer проти інших підходів до автоматизації

Підхід Контроль відбитка Безпека багатоакаунтності Складність налаштування
Звичайний Puppeteer Низький Немає Низька
Puppeteer + плагіни stealth Середній Немає Середня
AdsPower + Puppeteer Високий Висока Середня
AdsPower RPA Високий Висока Низька

Якщо вам потрібна проста автоматизація без коду всередині AdsPower, вбудованого інструменту RPA може бути достатньо. Але коли вам потрібна власна логіка, умовні потоки або інтеграція з вашим власним кодом Node.js, маршрут Puppeteer набагато гнучкіший.

Для налаштувань електронної комерції з кількома магазинами застосовується той самий патерн. Дивіться наш посібник використання AdsPower з Ecwid для керування кількома магазинами для конкретного робочого процесу.

Пов'язані матеріали

Джерела та додаткове читання

Метод: GETОпис: Щоб відкрити браузер, потрібно вказати ID профілю. Після успішного запуску ви можете отримати інтерфейс налагодження браузера для виконання Selenium a

  • Огляд API - AdsPower підтримує функцію Local API, щоб допомогти користувачам програмно читати та записувати конфігурацію профілів, а також створювати, закривати та запитувати профілі та інші базові функції API. Ви

Часті запитання

Чи потрібен мені платний план AdsPower для використання Puppeteer?

Так. Доступ до Local API, необхідний для інтеграції з Puppeteer, доступний лише на платних планах.

Чи можу я використовувати Puppeteer з AdsPower на Linux?

Так. AdsPower підтримує Windows, Mac і Linux. Local API працює однаково на всіх платформах, хоча шлях до файлу local_api відрізняється.

Чи замінює Puppeteer вбудовану автоматизацію AdsPower?

Ні. RPA AdsPower — це візуальний інструмент без коду. Puppeteer призначений для розробників, які хочуть повний програмний контроль. Вони служать різним потребам і можуть співіснувати.

Чи можу я запускати кілька з'єднань Puppeteer одночасно?

Так. Запустіть кілька профілів через API, а потім підключіть окремий екземпляр Puppeteer до кожного. Дотримуйтеся обмежень швидкості API, які залежать від кількості профілів.

Що робити, якщо адреса WebSocket змінюється між запусками?

Значення ws.puppeteer генерується заново під час кожного запуску. Завжди викликайте /api/v1/browser/start і використовуйте повернену адресу, а не жорстко закодовану.

Висновок

AdsPower забезпечує ізоляцію ідентичності; Puppeteer забезпечує автоматизацію поведінки. Підключення їх через Local API дає вам реалістичний відбиток браузера та повний інтерфейс сценаріїв в одному робочому процесі. Патерн простий: запустіть профіль, підключіться за допомогою puppeteer.connect(), автоматизуйте, потім зупиніть профіль.

Почніть з одного профілю та простого сценарію. Коли з'єднання стабільне, масштабуйте до кількох профілів з проксі та чергою. Ця комбінація покриває більшість потреб багатоакаунтності, парсингу та тестування, не викликаючи антибот-систем, які блокують звичайний Puppeteer.

Для додаткових порад щодо автоматизації та проксі перегляньте наш посібник з налаштування NetNut для AdsPower та порівняння AdsPower проти Undetectable проти BitBrowser.

AI INSIGHTS

Need a Quick Summary? Ask AI