Retour au Blog
Démarrage

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.0 si 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

#puppeteer#automation#getting-started#tutorial