Premiers pas avec BotBrowser et Playwright
Guide complet pour intégrer BotBrowser avec Playwright : profils d'empreinte, proxy et contextes multiples.
Introduction
Playwright est le framework d'automatisation de navigateurs de Microsoft, apprécié pour son auto-waiting fiable, son support multi-navigateurs et son API puissante. BotBrowser remplace le binaire Chromium standard par un binaire qui produit des empreintes cohérentes contrôlées par des profils. Playwright gère la logique d'automatisation, BotBrowser la couche d'identité du navigateur.
Ce guide couvre l'installation, la configuration du lancement, le proxy, les contextes, la gestion du viewport, les pièges courants et les modèles de déploiement en production.
Pourquoi Playwright + BotBrowser ?
Playwright, par défaut, utilise un Chromium qui expose l'empreinte réelle de l'hôte. BotBrowser permet de charger des profils d'empreinte différents pour chaque instance, fournissant des identités distinctes sans modifier les scripts d'automatisation.
Contexte technique
playwright-core vs playwright
Le paquet playwright inclut des binaires de navigateurs. playwright-core fournit la même API sans les binaires, il faut donc préciser executablePath lors du launch, ce qui est adapté pour pointer vers BotBrowser.
# Installer playwright-core, pas playwright
npm install playwright-core
Comment fonctionne le lancement
Playwright démarre le processus Chrome avec les arguments fournis. Les flags BotBrowser (--bot-profile, --bot-config-*) sont passés via args et traités par BotBrowser au démarrage. Playwright se connecte ensuite au serveur CDP exposé par BotBrowser.
Contextes de navigateur
Un contexte est une session isolée avec cookies et stockage propres. Les contextes partagent le profil de fingerprint chargé au niveau du navigateur ; pour des identités différentes, lancez des instances distinctes.
Intégration minimale
- Installer
playwright-core. - Spécifier le chemin du binaire BotBrowser dans
executablePath. - Fournir un fichier de profil
.enc.
Exemples
Lancement basique
const { chromium } = require('playwright-core');
(async () => {
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: ['--bot-profile=/path/to/profile.enc'],
headless: true,
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
console.log('Page title:', await page.title());
await browser.close();
})();
Profil + proxy + locale
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy:1080',
'--bot-config-timezone=America/New_York',
'--bot-config-locale=en-US',
],
headless: true,
});
Bonnes pratiques
- Utiliser
playwright-core. - Donner un chemin absolu à
--bot-profile. - Ne pas surcharger le viewport si le profil gère la résolution.
- Sur Linux, définir
DISPLAY=:10.0.
Résumé
L'intégration est minimale : installer playwright-core, ajouter executablePath et --bot-profile. Tout le reste fonctionne avec l'API Playwright standard.
title: "Demarrer avec BotBrowser et Playwright" description: "Guide de demarrage rapide pour utiliser BotBrowser avec Playwright pour l'automatisation de navigateur avec des profils d'empreinte coherents." date: "2025-02-18" locale: fr category: getting-started tags: ["playwright", "automation", "getting-started", "tutorial"] published: true
Presentation
Playwright gere la logique d'automatisation. BotBrowser gere la couche d'identite du navigateur. Ensemble, ils fournissent une automatisation de navigateur avec une sortie d'empreinte coherente controlee par des fichiers de profil.
Prerequis
- Binaire BotBrowser (telecharger depuis GitHub)
- Un fichier de profil d'empreinte (format
.enc) - Node.js 18+
npm install playwright-core
Demarrage rapide
const { chromium } = require('playwright-core');
(async () => {
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
],
headless: true,
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
// Votre logique d'automatisation ici
await browser.close();
})();
Configuration cle
Utilisez playwright-core, pas playwright. Le package complet playwright inclut son propre Chromium. Utilisez playwright-core pour lancer le binaire BotBrowser.
Definissez defaultViewport: null pour empecher Playwright de remplacer les dimensions d'ecran definies dans votre profil.
Exemple profil + proxy
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy:1080',
'--bot-config-timezone=America/New_York',
'--bot-config-locale=en-US',
'--bot-config-languages=en-US,en',
],
headless: true,
});
Problemes courants
Le navigateur ne demarre pas : Assurez-vous que le binaire a les permissions d'execution (chmod +x chrome).
Profil non charge : Utilisez des chemins absolus pour --bot-profile.
Taille d'ecran incorrecte : Definissez defaultViewport: null dans les options de lancement.
Etapes suivantes
- Recettes CLI pour plus de combinaisons de flags
- Demarrer avec Puppeteer pour l'integration Puppeteer
- Gestion des profils pour organiser les profils