Перейти к содержимому

Автоматизация

Puppeteer и Playwright, прямо в ваши профили

У каждого открытого профиля свой адрес отладки. Подключайте свой код именно к этому профилю: с его отпечатком, его куки, его прокси. Входит в каждый тариф, включая бесплатный.

  1. 1Откройте в программе «Для программистов» и нажмите «Включить локальный API», затем скопируйте токен доступа.
  2. 2Попросите открыть профиль. В ответ придёт адрес, принадлежащий только ему.
  3. 3Подключите свой код к этому адресу как к обычному браузеру.
  4. 4Работайте как обычно. Отпечаток, куки и прокси уже на месте.

JavaScript (puppeteer-core)

const puppeteer = require('puppeteer-core');

(async () => {
  // 1. Ask the app for this profile's debugging endpoint.
  const started = await fetch(
    'http://127.0.0.1:50325/api/v1/browser/start?profileId=YOUR_PROFILE_ID',
    { method: 'POST', headers: { 'x-api-token': 'YOUR_API_TOKEN' } },
  ).then((r) => r.json());

  // 2. Attach to it like to any other browser.
  const browser = await puppeteer.connect({
    browserWSEndpoint: started.data.ws,
    defaultViewport: null,
  });

  const [page] = await browser.pages();
  await page.goto('https://example.com');
})();

Python (Playwright)

import requests
from playwright.sync_api import sync_playwright

# 1. Ask the app for this profile's debugging endpoint.
started = requests.post(
    "http://127.0.0.1:50325/api/v1/browser/start",
    params={"profileId": "YOUR_PROFILE_ID"},
    headers={"x-api-token": "YOUR_API_TOKEN"},
).json()

# 2. Attach to it like to any other browser.
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(started["data"]["ws"])
    page = browser.contexts[0].pages[0]
    page.goto("https://example.com")

Что важно знать до подключения

Puppeteer и Playwright при подключении сами включают Runtime.enable и Page.enable. Runtime.enable ставит внутри Chromium наблюдателей, которых скрипты страницы умеют замечать. Наш собственный сборщик сценариев его не включает никогда. Page.enable он включает только на время прогона и только на вкладках прогона, чтобы ответить на alert или confirm страницы; проверочная страница, которая ищет следы, ни на одном движке его не заметила. Если площадка это проверяет, соберите последовательность в самой программе.

Или соберите вообще без кода

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

Посмотреть, что умеет программа