Vai al contenuto

Automazione

Puppeteer e Playwright, dritti nei tuoi profili

Ogni profilo aperto ha il suo indirizzo di debug. Collega il tuo codice proprio a quel profilo: con la sua impronta, i suoi cookie, il suo proxy. È incluso in ogni piano, anche in quello gratuito.

  1. 1Attiva l'interfaccia locale nell'applicazione: impostazioni, sezione «API locale». Copia la chiave.
  2. 2Chiedi di aprire un profilo. La risposta contiene un indirizzo che appartiene solo a lui.
  3. 3Collega il tuo codice a quell'indirizzo come a un browser qualsiasi.
  4. 4Lavora come sempre. Impronta, cookie e proxy sono già a posto.

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

Una cosa da sapere prima di collegarti

Puppeteer and Playwright turn on Runtime.enable and Page.enable the moment they attach. Runtime.enable puts observers inside Chromium that page scripts can notice. Our own automation builder never turns it on. It turns on Page.enable only while a flow runs, on the tabs the flow uses, so it can answer a page's alert or confirm; a test page that looks for traces saw nothing from it on either engine. If the site you work with checks for this, build the sequence in the app instead.

Oppure fallo senza scrivere codice

Sedici tipi di passo in una finestra: apri, clicca, scrivi, aspetta, leggi, ramifica. Nessun osservatore rilevabile e niente da installare.

Guarda cosa sa fare l'applicazione