Prevention de la detection d'automatisation avec BotBrowser
Comment BotBrowser empeche les signaux des frameworks d'automatisation d'etre exposes, eliminant le besoin de plugins stealth.
Presentation
Lorsque vous lancez Chromium via Playwright ou Puppeteer, le navigateur expose des signaux d'automatisation. BotBrowser empeche ces signaux d'etre exposes en les gerant au niveau du moteur avant l'execution de tout code de page. Aucun plugin stealth ni patch JavaScript n'est necessaire.
Comment BotBrowser gere cela
BotBrowser modifie le moteur du navigateur. Les signaux d'automatisation sont controles au niveau C++ avant la creation de tout contexte JavaScript. Cela signifie que navigator.webdriver renvoie false nativement, et le mode headless produit la meme surface d'API que le mode avec interface.
Configuration propre avec Playwright
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');
await browser.close();
})();
Configuration de production
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',
'--bot-disable-console-message',
'--bot-disable-debugger',
],
headless: true,
});
Flags cles : --bot-disable-debugger empeche les pages de suspendre l'execution avec des instructions debugger. --bot-disable-console-message supprime la sortie console.
Bonnes pratiques
Utilisez playwright-core, pas playwright. Le package complet inclut son propre Chromium.
Definissez defaultViewport: null. Preserve les dimensions d'ecran du profil.
Associez l'emplacement du proxy au profil. Combinez le profil avec un proxy geographiquement correspondant.
Alternez les profils entre sessions. Utilisez --bot-profile-dir pour selectionner aleatoirement depuis un repertoire de profils.
Ce que vous pouvez supprimer
Avec BotBrowser, vous n'avez plus besoin de bibliotheques stealth, de patches JavaScript personnalises, de middleware de falsification d'user-agent ni de bibliotheques wrapper "non detecte". BotBrowser gere les signaux sous-jacents au niveau du moteur.
Etapes suivantes
- Demarrer avec Playwright pour l'integration basique
- Guide de deploiement Docker pour l'automatisation conteneurisee
- Gestion des profils pour organiser les profils