Tutorial: So führen Sie Playwright auf Termux (Android)
Die Ausführung von Playwright auf Termux erfordert einen speziellen manuellen Patch, da das offizielle Paket "android" nicht als unterstützte Plattform erkennt.
Voraussetzungen
* Termux auf Ihrem Android-Gerät installiert.
* Node.js installiert (pkg install nodejs).
Schritt 1:
Projektinitialisierung
Erstellen Sie ein neues Verzeichnis für Ihren Scraper und initialisieren Sie ein leeres Node.js-Projekt.
In meinem Beispiel werde ich dies aus einem Projektordner installieren, der bereits meinen benutzerdefinierten Webscraper enthält, den ich verwenden möchte.
Wenn Sie dasselbe tun möchten, ignorieren Sie die mkdir-Schritte und wechseln Sie in den Ordner mit Ihrem eigenen benutzerdefinierten Scraper.
mkdir mein-scraper-projekt
cd mein-scraper-projekt
npm init -y
Schritt 2:
Abhängigkeiten installieren
Installieren Sie die erforderlichen Pakete.
Wir setzen diese auf Version 1.58.2, um Konsistenz zu gewährleisten.
npm install playwright@1.58.2
npm install playwright-extra@4.3.6
npm install puppeteer-extra-plugin-stealth@2.11.2
npm install dotenv@17.4.1
npm install express@5.2.1
Schritt 3:
Der manuelle Plattform-Patch
Standardmäßig blockiert Playwright die Ausführung auf Android.
Sie MÜSSEN die Registrierungsdatei manuell bearbeiten, um dies zuzulassen.
Wenn Sie diesen Schritt überspringen, kann Playwright Chromium in Termux nicht ausführen.
1. Öffnen Sie die Registrierungsindexdatei in Ihrem Terminal-Editor:
nano ./node_modules/playwright-core/lib/server/registry/index.js
Suchen Sie nach dieser Zeile (verwenden Sie Strg + W in nano, um zu suchen):
if (process.platform === "linux")
Ändern Sie diese Zeile, um die Android-Plattformprüfung einzuschließen:
if (process.platform === "linux" || process.platform === "android")
Um klarzustellen, es gibt ein Leerzeichen vor und nach dem "||"
Speichern und beenden (Drücken Sie Strg + O, Eingabetaste, dann Strg + X).
Schritt 4: Überprüfung
Testen Sie, ob die Konfiguration funktioniert, indem Sie ein kleines Skript ausführen, um die Browser-Engine zu initialisieren.
node -e "const { chromium } = require('playwright'); console.log('Chromium erfolgreich geladen');"
Das sollte eine Zeile sein
Wenn Sie "Chromium erfolgreich geladen" sehen, ist Ihre Umgebung bereit für das Scraping.
**Haftungsausschluss und Konfigurationsanleitung** :
⚠️ Letzter Haftungsausschluss:
Browserkonfiguration
Beim Ausführen von Playwright auf Termux können Sie den standardmäßig "heruntergeladenen" Chromium-Browser **nicht** verwenden, da er nicht für die Android/ARM-Architektur kompiliert ist.
Die spezielle Konfiguration:
Sie müssen Playwright auf die systeminstallierte Chromium-Binärdatei verweisen. In Ihrer scraper.js (oder welchem Skript auch immer, das den Browser startet), müssen Sie Ihren chromium.launch-Block wie folgt aktualisieren:
```javascript
const browser = await chromium.launch({
headless: true,
// DIESE ZEILE IST KRIITISCH:
executablePath: '/data/data/com.termux/files/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu'
]
});
```
Warum dies erforderlich ist:
1. **executablePath**: Weist Playwright an, den über pkg install chromium installierten Chromium-Browser (die native Termux-Version) anstelle des inkompatiblen, den Playwright normalerweise herunterlädt, zu verwenden.
2. **--no-sandbox**: Das Berechtigungsmodell von Termux/Android verhindert, dass der Standard-Chromium-Sandbox funktioniert. Dieses Flag ist **obligatorisch**, um sofortige Abstürze zu verhindern.
3. **--disable-dev-shm-usage**: Termux hat begrenzten gemeinsamen Speicher (/dev/shm). Dieses Flag zwingt den Browser, eine andere Speicherverwaltungsstrategie zu verwenden, um "Speicher erschöpft" oder Pufferfehler zu verhindern.
[!HINWEIS]
Stellen Sie sicher, dass Sie den Browser zuerst in Termux installiert haben, indem Sie Folgendes ausführen:
pkg install chromium