La plupart des équipes utilisent désormais une stack scindée : des scrapers maison avec proxies résidentiels et navigateurs headless furtifs pour tout ce qui est derrière un login ou chargé à coups de JavaScript, et des API de recherche/SERP hébergées pour tout ce qui est public et déjà indexé. En 2026, aucun outil unique ne fait tout bien, et un fil récent de r/dataengineering ("Sorti du scraping depuis quelques années, qui utilise quoi maintenant ?", 60 votes) le confirme. Une réponse : "Scraper Google Search est vraiment difficile... il faut une SERP ou battre les ingénieurs de Google." Une autre : "Trop fragile à faire tourner moi-même, au boulot on utilise des services SERP." Une troisième a donné la vraie raison : "forte hausse de l'anti-bot Cloudflare à cause de l'IA, personne ne veut voir ses données prises gratuitement."
Ce dernier point résume tout. Le coût du scraping maison a grimpé. Cloudflare, DataDome et PerimeterX détectent mieux les navigateurs headless par fingerprinting, parce que la ruée vers les données d'entraînement IA a mis tout le monde sur la défensive. La question n'est donc plus "quelle bibliothèque de scraping" mais "à quelle couche de la stack cette cible appartient."
Couche 1 : scrapers maison + proxies résidentiels
Vous en avez toujours besoin pour les cibles derrière un login ou rendues entièrement côté client. Pensez à un tableau de bord connecté, un rapport SaaS interne, une app React qui livre un <div id="root"> vide. Ici vous lancez Playwright ou un fork furtif, vous faites tourner des proxies résidentiels et vous acceptez de le surveiller. C'est la couche la plus flexible et la plus fragile. Chaque nouvelle version du défi Cloudflare vous coûte un après-midi. SearXNG est proche : gratuit et auto-hébergé, mais il casse quand les moteurs changent leur HTML et exige vos propres proxies à grande échelle.
Couche 2 : API de scraping / crawl hébergées
Quand il vous faut le contenu de sites quelconques sans faire tourner les navigateurs, une API de crawl mérite son tarif. Firecrawl est le choix courant : 1 000 crédits/mois gratuits, offre Hobby à 16 $/mois pour ~3 000 crédits, l'extraction IA facturée 5 crédits par appel et des crédits non reportables. Le reader r.jina.ai de Jina AI renvoie du texte propre et offre 10M de tokens gratuits par clé pour un usage non commercial. Ils transforment un HTML brouillon en texte prêt pour LLM. Ils ne vous donnent pas de champs typés comme "prix" ou "note" sans payer la passe d'extraction IA.
Couche 3 : API de recherche / SERP structurées
C'est la couche que la plupart sous-utilisent. Si la cible est publique et indexée — résultats Google, fiches Amazon, fils Reddit, YouTube — une API de recherche vous remet un JSON structuré et ne se bat jamais contre Cloudflare, parce que vous ne crawlez pas le site : vous interrogez une API qui l'a déjà fait. Serper va de 1,00 $ par 1 000 crédits jusqu'à 0,30 $/1k à l'échelle, avec 2 500 crédits gratuits valables six mois. SerpApi donne 250 recherches/mois gratuites, puis 25 $/mois pour 1 000. Scavio fonctionne au crédit à 0,005 $/crédit ; une SERP Google complète coûte 2 crédits, une requête légère 1, et une seule clé couvre Google, Reddit, YouTube, Amazon, Walmart et TikTok.
La règle de décision
La cible est-elle publique et indexée ? Utilisez une API de recherche et obtenez du JSON typé sans bagarre anti-bot. Est-elle derrière un login ou rendue en JS ? Retour à la Couche 1, aucune API ne vous sauve là. Soyons clairs : une API SERP ne remplace pas le scraping des pages authentifiées ou rendues côté client. Elle remplace le travail précis et pénible de scraper des SERP publiques et des fiches marketplace — exactement ce que le fil Reddit appelait "vraiment difficile."
Voici une requête Google complète contre Scavio renvoyant du JSON structuré :
import requests
resp = requests.post(
"https://api.scavio.dev/api/v1/google",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"query": "best web scraping stack 2026", "light_request": False},
)
data = resp.json()
for result in data["organic"]:
print(result["position"], result["title"], result["link"])
# full_request renvoie aussi people_also_ask, knowledge_graph, related_searches
for q in data.get("people_also_ask", []):
print("PAA:", q["question"])Pas de navigateur headless, pas de pool de proxies, pas de Cloudflare. Pour Google, Reddit, Amazon et YouTube, c'est la réponse de 2026 retenue par la plupart. Pour le contenu fermé et lourd en JS, gardez votre installation Playwright au chaud.
Où chacun perd
Aucun outil ne gagne partout. Si vous n'interrogez Google que quelques centaines de fois par mois, les 250 gratuites de SerpApi ou les 2 500 crédits gratuits de Serper peuvent ne rien vous coûter et battre n'importe quel plan payant. S'il vous faut du texte propre depuis des blogs au hasard, Firecrawl ou Jina lisent des pages qu'une API SERP n'a jamais été conçue pour récupérer. Et si toutes vos cibles sont derrière un login, ni la Couche 2 ni la 3 n'aident : auto-hébergez et montez vos proxies. Adaptez la couche à la cible, pas au battage.