Tutoriel : Comment exécuter Playwright sur Termux (Android)
Exécuter Playwright sur Termux nécessite un patch manuel spécifique, car le package officiel ne reconnaît pas nativement "android" comme une plateforme prise en charge.
Prérequis
* Termux installé sur votre appareil Android.
* Node.js installé (pkg install nodejs).
Étape 1 :
Initialisation du projet
Créez un nouveau répertoire pour votre scraper et initialisez un projet Node.js vierge.
Dans mon exemple, je vais l'installer depuis un dossier de projet qui a déjà mon webscraper personnalisé que je souhaite utiliser.
Si vous voulez faire de même, ignorez les étapes mkdir et cd dans le dossier avec votre propre scraper personnalisé.
mkdir mon-projet-scraper
cd mon-projet-scraper
npm init -y
Étape 2 :
Installer les dépendances
Installez les packages requis.
Nous les fixons à la version 1.58.2 pour garantir la cohérence.
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
Étape 3 :
Le patch manuel de la plateforme
Par défaut, Playwright bloquera l'exécution sur Android.
Vous DEVEZ modifier manuellement le fichier de registre pour le permettre.
Si vous sautez cette étape, Playwright ne pourra pas exécuter chromium dans Termux
1. Ouvrez le fichier d'index du registre dans votre éditeur de terminal :
nano ./node_modules/playwright-core/lib/server/registry/index.js
Recherchez cette ligne (utilisez Ctrl + W dans nano pour rechercher) :
if (process.platform === "linux")
Modifiez cette ligne pour inclure la vérification de la plateforme android :
if (process.platform === "linux" || process.platform === "android")
Pour être clair, il y a un espace avant et après le "||"
Enregistrez et quittez (Appuyez sur Ctrl + O, Entrée, puis Ctrl + X).
Étape 4 : Vérification
Testez que la configuration fonctionne en exécutant un petit script pour initialiser le moteur de navigateur.
node -e "const { chromium } = require('playwright'); console.log('Chromium chargé avec succès');"
Cela devrait être une seule ligne
Si vous voyez "Chromium chargé avec succès", votre environnement est prêt à être utilisé pour le scraping.
**Avertissement et guide de configuration** :
⚠️ Avertissement final :
Configuration du navigateur
Lorsque vous exécutez Playwright sur Termux, vous **ne pouvez pas** utiliser le navigateur Chromium "téléchargé" par défaut car il n'est pas compilé pour l'architecture Android/ARM.
La configuration spéciale :
Vous devez indiquer à Playwright de pointer vers le binaire Chromium installé par le système. Dans votre scraper.js (ou quel que soit le script qui lance le navigateur), vous devez mettre à jour votre bloc chromium.launch comme suit :
```javascript
const browser = await chromium.launch({
headless: true,
// CETTE LIGNE EST CRITIQUE :
executablePath: '/data/data/com.termux/files/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu'
]
});
```
Pourquoi cela est requis :
1. **executablePath** : Indique à Playwright d'utiliser le navigateur Chromium installé via pkg install chromium (la version native de Termux) au lieu de celui que Playwright télécharge habituellement, qui est incompatible.
2. **--no-sandbox** : Le modèle de permissions Termux/Android empêche le sandbox standard de Chromium de fonctionner. Ce drapeau est **obligatoire** pour éviter les plantages immédiats.
3. **--disable-dev-shm-usage** : Termux a une mémoire partagée limitée (/dev/shm). Ce drapeau force le navigateur à utiliser une stratégie de gestion de la mémoire différente, empêchant les erreurs "mémoire insuffisante" ou de tampon.
[!NOTE]
Assurez-vous d'avoir d'abord installé le navigateur dans Termux en exécutant :
pkg install chromium