ARMANOS

Automação

Puppeteer e Playwright, direto nos seus perfis

Cada perfil aberto tem o seu próprio endereço de depuração. Conecte o seu código exatamente a esse perfil: com a impressão digital dele, os cookies dele, o proxy dele. Está em todos os planos, inclusive o gratuito.

  1. 1Ligue a interface local no aplicativo: ajustes, seção «API local». Copie a chave.
  2. 2Peça para abrir um perfil. A resposta traz um endereço que pertence só a ele.
  3. 3Conecte o seu código a esse endereço como a um navegador comum.
  4. 4Trabalhe como sempre. A impressão digital, os cookies e o proxy já estão lá.

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")

Algo que vale saber antes de conectar

O Puppeteer e o Playwright ligam Runtime.enable e Page.enable assim que se conectam. Esses domínios colocam observadores dentro do Chromium que os scripts da página conseguem perceber. O nosso próprio construtor de automações nunca os liga, e por isso um perfil conduzido por ele parece igual a um conduzido à mão. Se o site com que você trabalha verifica isso, monte a sequência dentro do aplicativo.

Ou monte sem escrever código

Dezesseis tipos de passo numa janela: abrir, clicar, digitar, esperar, ler, ramificar. Sem observadores detectáveis e sem instalar nada.

Ver o que o aplicativo faz