Scraper en 2026 : Playwright, Puppeteer ou Phantombuster ?
Comparatif pratique des 3 grands outils de scraping en 2026 : Playwright, Puppeteer, Phantombuster. Forces, faiblesses, cas d'usage et tarifs.
Etienne Aubry
Développeur & Expert Automatisation IA
Le scraping en 2026, c’est devenu un terrain de guerre. Les sites détectent les bots de mieux en mieux (TLS fingerprinting, comportementale, Cloudflare Bot Management v4), et en face on a une floraison d’outils qui se battent pour le créneau. Quand un client me demande “tu peux scraper LinkedIn ?” ou “j’ai besoin de récupérer les prix sur 200 sites e-commerce”, je dois choisir le bon outil en 5 minutes.
Ce comparatif, c’est ma synthèse après avoir déployé 40+ scrapers cette année avec Playwright, Puppeteer et Phantombuster. Je vais te dire honnêtement quoi prendre selon ton cas.
Le cadre légal et éthique d’abord
Avant tout, soyons clairs : tout scraping n’est pas légal. En France et en Europe, ce qui est généralement permis :
- Scraper des données publiques d’un site qui n’interdit pas ça explicitement dans ses CGU
- Récupérer des prix, descriptions produits, articles de blog publiquement accessibles
- Veille concurrentielle modérée
Ce qui est explicitement risqué ou interdit :
- Scraper LinkedIn (CGU strictes, jurisprudence hiQ vs LinkedIn ambiguë)
- Récupérer des données personnelles sans base légale RGPD
- Outrepasser un système de protection (paywall, login)
- Faire tomber un site par volume excessif
Mon principe : si tu veux scraper, fais-le en respectant les robots.txt, en limitant tes requêtes (1 req/2-3s minimum), et en t’identifiant via un user-agent honnête si possible. Pour LinkedIn spécifiquement, je refuse les missions purement extractives - sauf si le client est sur Sales Navigator avec un usage personnel modéré.
Les 3 candidats en bref
Playwright : framework Microsoft, open-source, multi-browser (Chromium, Firefox, WebKit), API moderne, excellent pour scraping et tests E2E. Mon préféré.
Puppeteer : framework Google, open-source, focus Chromium, plus ancien et stable, écosystème énorme. Mature mais en perte de vitesse face à Playwright.
Phantombuster : SaaS hébergé, scrapers pré-faits (LinkedIn, Twitter, Instagram, Sales Nav, etc.), pas de code, gestion de cookies/proxies automatique. Cher mais ultra-rapide à déployer.
Playwright : la référence en 2026
Quand je code un scraper en 2026, c’est à 80% du Playwright en TypeScript. Pourquoi :
API moderne et claire. Auto-waiting natif (page.click("button") attend automatiquement que le bouton soit cliquable, plus de waitForSelector partout), promesses propres, types TypeScript first-class.
Multi-browser réel. Tu peux tester Chromium, Firefox, et WebKit (Safari) avec le même code. Pour le scraping, ça permet de varier les User-Agent et le fingerprint en cas de blocage.
Stealth plus facile à mettre en place que Puppeteer. La lib playwright-stealth (ou son successeur playwright-extra avec plugins) couvre 90% des détections naïves. Pour le reste, il faut passer par des techniques plus sérieuses (proxies résidentiels, comportementale).
Exemple type d’un scraper Playwright propre :
import { chromium } from "playwright-extra";
import StealthPlugin from "puppeteer-extra-plugin-stealth";
chromium.use(StealthPlugin());
async function scrapeProducts(url: string) {
const browser = await chromium.launch({
headless: true,
args: ["--disable-blink-features=AutomationControlled"],
});
const context = await browser.newContext({
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
viewport: { width: 1920, height: 1080 },
locale: "fr-FR",
timezoneId: "Europe/Paris",
});
const page = await context.newPage();
await page.goto(url, { waitUntil: "domcontentloaded" });
// Attente passive pour ressembler à un humain
await page.waitForTimeout(2000 + Math.random() * 3000);
const products = await page.$$eval(".product-card", (cards) =>
cards.map((card) => ({
title: card.querySelector(".title")?.textContent?.trim(),
price: card.querySelector(".price")?.textContent?.trim(),
url: card.querySelector("a")?.href,
}))
);
await browser.close();
return products;
}
Coût : gratuit (lib open-source). Mais tu dois héberger l’exécution (VPS, container, serverless avec image custom). Compte 5-20 €/mois selon volume.
Cas où Playwright excelle :
- Tu as un projet long terme, tu vas itérer
- Tu as des compétences TypeScript ou Python
- Tu veux la maîtrise totale du flow (proxies, retries, parsing)
- Tu fais > 1000 scrapes par jour (le coût SaaS exploserait)
- Tu fais aussi du test E2E (mutualisation de la stack)
Cas où Playwright galère :
- LinkedIn et autres sites avec auth complexe + détection avancée
- Captchas (faut intégrer un solver, ça devient pénible)
- Tu n’as pas envie de coder
Pour structurer correctement ce genre de projet, j’ai écrit un guide dédié : TypeScript pour bots : structure de projet propre.
Puppeteer : encore valable ?
Puppeteer reste solide. Mais en 2026, j’ai du mal à trouver une raison objective de le choisir plutôt que Playwright. Les deux APIs se ressemblent beaucoup, mais Playwright a quasi-systématiquement l’avantage :
- Auto-waiting natif (Puppeteer demande encore beaucoup de
waitFor) - Meilleur support multi-browser
- Meilleur écosystème de plugins en 2025-2026
- Meilleurs types TypeScript (depuis 1.34, Playwright)
- Meilleurs outils de debug (Playwright Inspector, trace viewer)
Là où Puppeteer garde un avantage marginal :
- Communauté énorme, pléthore de tutoriels (Stack Overflow rempli de code Puppeteer)
- Plus d’années d’existence = bugs rares, librairies tierces matures
- Si tu as déjà un projet Puppeteer existant, ne migre pas pour migrer
Le piège classique : beaucoup de devs débutent par Puppeteer parce que les tutos YouTube en sont remplis, puis se retrouvent à galérer sur des trucs que Playwright résout out-of-the-box. Si tu commences un projet greenfield en 2026, prends Playwright.
Coût : identique à Playwright, gratuit + hébergement.
Phantombuster : le SaaS qui ne demande aucun code
Phantombuster, c’est l’opposé philosophique. Tu paies (à partir de 56 $/mois), tu choisis un “Phantom” parmi 100+ scrapers pré-codés, tu lui donnes des entrées (une URL, une recherche LinkedIn, etc.), et tu reçois un CSV en sortie. Zéro code.
Ce que Phantombuster fait très bien :
- LinkedIn et Sales Navigator : les scrapers sont incroyablement maintenus. Quand LinkedIn change un sélecteur (toutes les 2-3 semaines), l’équipe Phantombuster met à jour, et toi tu n’as rien à faire. C’est leur vraie valeur.
- Twitter/X, Instagram, TikTok : pareil, les Phantoms s’adaptent en quasi-temps réel
- Gestion des cookies de session : tu colles ton cookie LinkedIn dans l’UI, Phantombuster gère la persistance
- Proxies résidentiels inclus dans les plans payants > 56 $
- Captcha solving intégré (la plupart du temps)
- API HTTP pour déclencher les Phantoms depuis n’importe quel script ou n8n
Là où Phantombuster est nul :
- Sites custom : si tu veux scraper le site de “boucheriedupontoise.fr”, Phantombuster ne t’aide pas. Faut faire un Phantom Custom JS, et là tu codes… en moins bien qu’avec Playwright direct.
- Volume : leurs plans sont en “exécutions par mois”. À gros volume, ça monte vite (au-delà de 5000 scrapes/mois, tu paies cher).
- Latence : un Phantom met 30s à se lancer (file d’attente).
- Données complexes : si tu veux scraper, transformer, enrichir avec une API, croiser avec ta base, c’est compliqué dans Phantombuster, beaucoup plus simple dans un script Playwright.
Coût en 2026 :
- Starter : 56 $/mois, 20h d’exec, 5 slots de Phantom
- Pro : 138 $/mois, 80h, 15 slots
- Team : 297 $/mois, 300h, 50 slots
Mon usage type : starter pour 1 client qui veut juste 200 leads LinkedIn / mois.
Cas où Phantombuster excelle :
- Scraping LinkedIn ou réseaux sociaux ponctuel
- Le client n’a pas de tech, veut un truc qui marche
- Budget OK (56 $+/mois acceptable)
- Volumes raisonnables (< 5000 scrapes / mois)
Cas où je passe à autre chose :
- Sites custom non couverts
- Volumes élevés
- Besoin de logique métier complexe en post-traitement
- Budget serré
Tableau comparatif
| Critère | Playwright | Puppeteer | Phantombuster |
|---|---|---|---|
| Coût | Gratuit + infra | Gratuit + infra | 56-297 $/mois |
| Setup initial | 2-4h | 2-4h | 15 min |
| Maintenance scrapers | À ta charge | À ta charge | Gérée |
| LinkedIn / RS | Difficile | Difficile | Excellent |
| Sites custom | Excellent | Excellent | Limité |
| Volume max | Illimité | Illimité | ~ 5000/mois |
| Stealth | Bon avec plugins | Bon avec plugins | Inclus |
| Captcha | À intégrer | À intégrer | Inclus |
| Compétences requises | TS/Python | TS/Python | Aucune |
| Sortie | Code custom | Code custom | CSV/JSON/Webhook |
Le bon choix selon ton cas
Cas 1 : “Je veux des leads LinkedIn pour mon commercial, 200/mois” → Phantombuster Starter. Tu cliques, c’est prêt en 1h.
Cas 2 : “Je veux surveiller les prix de 50 produits sur 5 sites e-commerce concurrents, tous les jours” → Playwright dans un GitHub Actions cron (voir mon comparatif des crons en 2026). Setup 4h, coût marginal nul.
Cas 3 : “Je veux extraire 100K produits d’Amazon pour ma DB” → Tu te calmes, parce que c’est légalement risqué et que tu vas te faire jeter. Si tu y tiens vraiment, Playwright + proxies résidentiels + 10 jours de boulot.
Cas 4 : “Je veux croiser des données de plusieurs sources : LinkedIn + Hunter + Clearbit + mon CRM” → Phantombuster pour la partie LinkedIn (via API), puis du code custom Playwright ou Node pour le reste, le tout orchestré en n8n. C’est typiquement ce que je code en workflow avancé pour mes clients commerciaux.
Cas 5 : “Je débute, je veux apprendre le scraping” → Playwright. Tutoriel officiel excellent, écosystème actif, ce que tu apprends sert aussi pour les tests E2E.
Les pièges courants
1. Croire que stealth = invisibilité. Aucun outil ne te rend complètement indétectable. Les sites majeurs (Amazon, LinkedIn, Cloudflare) utilisent du fingerprinting comportemental + TLS + JS challenges. Stealth te fait passer 80% des défenses naïves, pas plus. Pour les 20% restants, faut soit des proxies résidentiels premium (Bright Data, Oxylabs, 200-500 $/mois), soit accepter que ça ne passera pas.
2. Faire du scraping sans gestion d’erreurs. Un site qui change un sélecteur, c’est ton scraper qui retourne null ou crashe. Toujours coder en mode “qu’est-ce qui se passe si la page n’a pas la structure attendue ?”. Alerte Slack en cas d’écart > 30% sur le volume attendu.
3. Pas de retry sur les 4xx/5xx. Toujours wrap tes calls dans une fonction de retry avec backoff exponentiel. J’ai un pattern détaillé dans TypeScript pour bots.
4. Hardcoder un user-agent unique. Si tu fais 1000 requêtes avec le même UA exotique, t’es grillé. Rotation d’UA + viewports + locales = baseline.
5. Pas de respect du robots.txt. Au-delà du légal, c’est de la politesse. Si un site dit “ne scrape pas /admin”, tu ne scrappes pas /admin. C’est très facile à vérifier avec robots-parser en Node.
6. Vouloir tout faire toi-même. Si ton besoin tient en 200 leads LinkedIn/mois et qu’un Phantom à 56 $ règle ça en 1h, pourquoi passer 3 jours à coder un truc fragile ? Le code custom a un coût caché énorme en maintenance.
Alternatives qui montent
Trois outils que je commence à utiliser sérieusement en 2026 :
Browserless.io : Playwright/Puppeteer hébergés en SaaS, tu envoies du code ou des “recipes” via API, ils exécutent. Sans le boulot de gérer Docker, proxies, scaling. À partir de 50 $/mois.
Apify : marketplace de scrapers (comme Phantombuster) + plateforme pour coder les tiens en JS. Hybride intéressant. Plan gratuit existant, plans payants à partir de 49 $/mois.
ScrapingBee / ScraperAPI : API qui prend une URL et retourne le HTML rendu (proxies inclus, captcha solving inclus). 49 $/mois pour 100K requêtes. Pratique quand tu veux juste “le HTML”, pas l’exécution complète.
Conclusion
En 2026, ma règle :
- LinkedIn / Twitter / Instagram → Phantombuster ou Apify
- Sites custom, volumes élevés, projet long terme → Playwright
- Apprentissage, projet greenfield → Playwright
- Projet existant en Puppeteer → tu restes (pas de raison de migrer)
- Tu veux juste le HTML rendu sans gérer la stack → ScrapingBee ou Browserless
Si tu as un projet de scraping complexe (croisement de sources, post-traitement, intégration CRM, automation), je peux le concevoir et le coder pour toi. C’est exactement ce que je fais dans un workflow avancé, avec architecture pensée pour durer 2 ans sans devenir un cauchemar. Réserve un échange pour qu’on en parle - 45 minutes suffisent à clarifier la stack idéale.
À lire ensuite
Cron jobs vs n8n vs GitHub Actions : que choisir en 2026 ?
Comparatif honnête de 3 façons de planifier des tâches récurrentes : cron classique, workflow n8n et GitHub Actions. Coûts, limites et cas réels.
Python pour l'automatisation : 10 scripts qui changent tout
10 scripts Python concrets qui automatisent les tâches répétitives du quotidien pro : email, fichiers, scraping, API, monitoring. Code complet inclus.
Supabase Edge Functions : automatiser sans serveur en 2026
Guide complet pour automatiser avec Supabase Edge Functions : webhooks, cron, intégrations API. Sans serveur, sans DevOps, en Deno + TypeScript.
Décrivez votre besoin en 2 min, je vous réponds sous 4 h
Audit gratuit · Pas de relance commerciale · Vous repartez avec un plan d'action utilisable.