Browser-Automatisierung · Setup-Seiten
Playwright
Playwright über eine Mobilfunkleitung starten, ein Kontext pro Account, und zwischen Kontexten rotieren.
Playwright ist die Wahl für skriptgesteuertes Browsen und Prüfungen. Proxies pro Kontext lassen ein Skript mehrere Leitungen nebeneinander betreiben. Chromium nimmt einen authentifizierten HTTP-Proxy direkt; SOCKS5 mit Passwort wird dort nicht unterstützt, kaufen Sie für Playwright also den HTTP-Port.
Proxy-String
Launch-Option (Node)
proxy: { server: "http://HOST:PORT", username: "USER", password: "PASS" }Launch-Option (Python)
proxy={"server": "http://HOST:PORT", "username": "USER", "password": "PASS"}Protokoll. HTTP. Chromium in Playwright kann sich nicht an einem SOCKS5-Proxy authentifizieren, also ist der HTTP-Port der richtige für Skripte.
Setup-Schritte
Playwright, Schritt für Schritt
- 1Starten Sie den Browser oder legen Sie einen Kontext an, mit der Proxy-Option auf den HTTP-Endpunkt und die Zugangsdaten der Leitung gesetzt.
- 2Setzen Sie Zeitzone, Locale und Geolocation des Kontexts auf das Land der Leitung.
- 3Öffnen Sie zuerst eine IP-Prüfseite und prüfen Sie den Ausgang, bevor das Skript irgendetwas anderes tut.
- 4Halten Sie einen Kontext pro Account und eine Leitung pro Account-Gruppe.
- 5Schließen Sie den Kontext vor der Rotation; öffnen Sie den nächsten, nachdem der Statuslink den Wechsel als abgeschlossen zeigt.
Rotationslink
Die IP gezielt wechseln
Rufen Sie den Rotationslink aus dem Skript zwischen Kontexten auf, fragen Sie den Statuslink ab, bis die Phase nicht mehr pending ist, und legen Sie dann den nächsten Kontext an. Halten Sie mindestens 5 Minuten Abstand zwischen Aufrufen.
import { chromium } from "playwright";
const proxy = { server: "http://HOST:PORT", username: "USER", password: "PASS" };
async function rotate() {
await fetch("ROTATION_LINK");
for (let i = 0; i < 24; i += 1) {
await new Promise((r) => setTimeout(r, 5000));
const state = await (await fetch("STATUS_LINK")).json();
if (state.rotation?.phase !== "pending") return;
}
}
const browser = await chromium.launch();
const context = await browser.newContext({
proxy,
timezoneId: "Europe/Berlin",
locale: "de-DE",
});
const page = await context.newPage();
await page.goto("https://api.ipify.org?format=json");
console.log(await page.textContent("body"));The rotation and status links are on the line's page in the portal and in the API documentation. The daily allowance of customer-driven changes is in the fair-use policy.
DNS, Zeitzone und Lecks
Den Fingerprint auf der Leitung halten
- timezoneId und locale des Kontexts müssen zum Land der Leitung passen; Chromium meldet sonst die Ihres Rechners.
- Nutzen Sie den Proxy auf Kontext-Ebene, wenn ein Skript mehrere Leitungen steuert; der Proxy auf Launch-Ebene gilt für jeden Kontext.
- WebRTC in Headless-Chromium kann die Adresse des Rechners trotzdem zeigen; blockieren Sie es mit einem Launch-Flag oder einer Erweiterung, wenn das Ziel es prüft.
Accounts pro Leitung
Wie viele Accounts auf einer Leitung
Skriptgesteuerte Prüfungen können sich eine Leitung frei teilen; Account-Arbeit folgt den Zahlen des Rechners.
| Plattform | Wachstum | Pflege |
|---|---|---|
| Instagram / Threads | 3 pro Leitung | 8 pro Leitung |
| X / Twitter | 5 pro Leitung | 10 pro Leitung |
| 5 pro Leitung | 10 pro Leitung | |
| 4 pro Leitung | 8 pro Leitung | |
| Other | 4 pro Leitung | 8 pro Leitung |
Prüfliste
Vor dem ersten Account
- Die IP-Prüfseite im Kontext liefert eine Mobilfunkadresse im Land der Leitung.
- Die Zeitzone, die die Seite meldet, passt zu diesem Land.
- Die erste authentifizierte Aktion des Skripts gelingt ohne Challenge.
What each check proves is on the verification page.
Stolperfallen
Was schiefgeht
- Ein SOCKS5-Proxy mit Passwort scheitert in Chromium stillschweigend; nutzen Sie den HTTP-Port.
- Rotation bei offenem Kontext ändert den Ausgang unter einer laufenden Sitzung.
- Der Rotationslink ist keine Proxy-Adresse.
Fragen
Playwright und Mobilfunkleitungen
Ja. Pool schickt jede neue Verbindung über eine andere SIM, was zustandsloser Sammlung entgegenkommt, und braucht keine Rotationsaufrufe aus dem Skript.