Premiers pas avec BotBrowser et Puppeteer
Guide complet pour intégrer BotBrowser avec Puppeteer : profils d'empreinte, proxy et déploiement en production.
Introduction
Puppeteer est la bibliothèque Node.js de Google pour contrôler Chrome via le Chrome DevTools Protocol (CDP). Elle fournit des API haut niveau pour la navigation, la capture d'écran, l'interaction avec les formulaires, l'interception réseau, et plus encore. BotBrowser remplace le binaire Chromium standard par un binaire qui produit des empreintes cohérentes contrôlées par des fichiers de profil. Puppeteer gère l'automatisation ; BotBrowser gère l'identité.
Ce guide couvre l'installation, la configuration de lancement, la gestion du viewport, la configuration du proxy, l'accès CDP, le déploiement en production sous Linux et le dépannage courant.
Pourquoi Puppeteer + BotBrowser
Le Chromium par défaut expose l'empreinte de la machine hôte. Avec BotBrowser, chaque instance Puppeteer peut charger un profil d'empreinte différent, fournissant des identités distinctes sans modifier le code d'automatisation.
Contexte technique
puppeteer-core vs puppeteer
Le paquet puppeteer inclut un binaire Chromium. puppeteer-core offre la même API sans les navigateurs intégrés ; il faut donc préciser executablePath lors du lancement, ce qui permet de pointer vers BotBrowser.
# Installer puppeteer-core, pas puppeteer
npm install puppeteer-core
defaultViewport
Puppeteer définit par défaut defaultViewport à 800x600, ce qui peut écraser la taille de viewport définie dans le profil BotBrowser. Définissez toujours defaultViewport: null pour laisser le profil contrôler le viewport.
Exemple basique
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
executablePath: '/path/to/botbrowser/chrome',
args: ['--bot-profile=/path/to/profile.enc'],
headless: true,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://example.com');
console.log('Page title:', await page.title());
await browser.close();
})();
Bonnes pratiques
- Utilisez
puppeteer-core. - Utilisez des chemins absolus pour
--bot-profile. - Ne pas oublier
defaultViewport: null. - Sur les serveurs Linux, définissez
DISPLAY=:10.0si nécessaire.
Résumé
L'intégration nécessite seulement de pointer executablePath vers BotBrowser, d'utiliser puppeteer-core et de passer --bot-profile tout en réglant defaultViewport: null.
title: "Demarrer avec BotBrowser et Puppeteer" description: "Guide de demarrage rapide pour utiliser BotBrowser avec Puppeteer pour l'automatisation de navigateur avec des profils d'empreinte coherents." date: "2025-03-04" locale: fr category: getting-started tags: ["puppeteer", "automation", "getting-started", "tutorial"] published: true
Presentation
Puppeteer est la bibliotheque Node.js de Google pour controler Chrome. BotBrowser remplace le binaire Chromium standard par un qui produit une sortie d'empreinte coherente controlee par des fichiers de profil. Puppeteer gere l'automatisation, BotBrowser gere l'identite.
Prerequis
- Binaire BotBrowser (telecharger depuis GitHub)
- Un fichier de profil d'empreinte (format
.enc) - Node.js 18+
npm install puppeteer-core
Demarrage rapide
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
],
headless: true,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://example.com');
// Votre logique d'automatisation ici
await browser.close();
})();
Configuration cle
Utilisez puppeteer-core, pas le package complet puppeteer qui telecharge son propre Chromium.
Definissez defaultViewport: null pour que Puppeteer ne remplace pas les dimensions du viewport de votre profil.
Exemple profil + proxy
const browser = await puppeteer.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy:1080',
'--bot-config-timezone=Europe/London',
'--bot-config-locale=en-GB',
'--bot-config-languages=en-GB,en',
],
headless: true,
defaultViewport: null,
});
Headless sur Ubuntu
Definissez la variable d'environnement DISPLAY=:10.0 meme en mode headless sur les serveurs Linux.
Problemes courants
Le navigateur ne demarre pas : Verifiez les permissions d'execution et le chemin du binaire.
Viewport incorrect : Definissez toujours defaultViewport: null.
Problemes de chemin de profil : Utilisez des chemins absolus pour --bot-profile.
Etapes suivantes
- Recettes CLI pour plus de combinaisons de flags
- Configuration serveur headless pour le deploiement en production
- Gestion des profils pour organiser les profils