Przejdź do treści

Automatyzacja

Puppeteer i Playwright, prosto w Twoje profile

Każdy otwarty profil ma własny adres debugowania. Podłącz swój kod dokładnie do tego profilu: z jego odciskiem, jego ciasteczkami, jego proxy. Jest w każdym planie, także w darmowym.

  1. 1Włącz interfejs lokalny w programie: ustawienia, sekcja „API lokalne”. Skopiuj klucz.
  2. 2Poproś o otwarcie profilu. W odpowiedzi przyjdzie adres należący tylko do niego.
  3. 3Podłącz swój kod do tego adresu jak do zwykłej przeglądarki.
  4. 4Pracuj jak zwykle. Odcisk, ciasteczka i proxy są już na miejscu.

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

Jedna rzecz do wiedzenia przed podłączeniem

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.

Albo zrób to zupełnie bez kodu

Szesnaście rodzajów kroku w oknie: otwórz, kliknij, wpisz, poczekaj, przeczytaj, rozgałęź. Żadnych wykrywalnych obserwatorów i nic do instalowania.

Zobacz, co potrafi program