● Korben 📅 28/04/2026 à 08:53

Scrapling - Le scraper Python qui se répare tout seul - Korben

Open Source 👤 Korben ✨
Illustration
Scrapling - Le scraper Python qui se répare tout seul28 avril 2026 / PAR KORBEN ✨ / 3 MIN DE LECTURE /Catégories connexesCe qu’il faut retenirScrapling est un framework Python qui répare automatiquement les sélecteurs CSS quand le HTML change, en sauvegardant la signature de l'élément (texte, attributs, position) et en le retrouvant via similarité, activable avec adaptive=True.Trois fetchers adaptés au besoin : Fetcher pour HTTP rapide, StealthyFetcher qui passe Cloudflare Turnstile via navigateur furtif, DynamicFetcher avec Chromium/Chrome pour sites lourds en JS, sans réécrire le code.Extraction 2 ms pour 5000 éléments contre 1584 ms pour BeautifulSoup, mais le gain vient du moteur lxml utilisé directement, donc pas d'amélioration si vous êtes déjà sur Scrapy ; embarque un ProxyRotator natif et blocage ads/trackers (~3500 domaines).Résumé généré par IALe scraping web, c'est un combat permanent contre les sites qui changent leur HTML toutes les deux semaines. Vous vous emmerdez à coder vos sélecteurs CSS, ça marche pendant un mois, puis le site refait son design et hop, votre script s'eteint en silence. C'est pourquoi Karim Shoair (alias D4Vinci sur GitHub) a sorti Scrapling, un framework Python qui s'adapte tout seul quand le DOM bouge.La clé c'est adaptive=True sur n'importe quel sélecteur. Vous lui dites "je cherchais .product", Scrapling sauvegarde alors la signature de l'élément (texte, attributs, position dans l'arbre), et la prochaine fois que le site a renommé sa classe, il retrouve l'élément via similarité.Concrètement ça donne ça :from scrapling.fetchers import StealthyFetcher StealthyFetcher.adaptive = True page = StealthyFetcher.fetch('https://example.com', headless=True) product = page.css_first('.product', adaptive=True) # Retrouve l'élément même si la classe a changé Le truc marche grâce à un algo de similarité maison qui compare la structure DOM autour de l'élément. L'auteur lui-même a écrit un long post Medium intitulé " Creating self-healing spiders with Scrapling in Python without AI ", et ça résume bien la philosophie : pas de modèle IA mais juste des heuristiques solides !La doc précise que adaptive=True ne sauvegarde que le premier élément de la sélection. Du coup si vous récupérez 50 produits d'un coup avec .css('.product'), seul le premier sera adapté. Faudra donc soit utiliser css_first comme dans l'exemple, soit boucler manuellement et appeler adaptive sur chaque élément. C'est bon à savoir...Y'a également 3 fetchers selon le besoin. Fetcher pour les requêtes HTTP rapides avec spoofing TLS, StealthyFetcher qui passe Cloudflare Turnstile via un navigateur furtif (Camoufox sous le capot), et DynamicFetcher qui lance un Chromium ou un Chrome via Playwright pour les sites lourds en JS. Du coup vous pouvez démarrer léger en HTTP et basculer vers un navigateur uniquement quand un site bloque, sans réécrire votre code.Côté perfs, le README annonce du lourd : 2 ms pour extraire 5000 éléments contre 1584 ms pour BeautifulSoup avec lxml. Sauf que Parsel et Scrapy font aussi 2 ms. Donc le gain vient du moteur lxml utilisé en direct, ce qui veut dire que si vous étiez déjà sur Scrapy, vous ne gagnerez pas en vitesse brute. Mais si vous traînez encore du BS4 partout, le saut sera énorme !Sur le terrain anti-bot, ça se compare bien à Botasaurus dont je vous avais parlé. La différence c'est que Scrapling embarque un ProxyRotator natif et propose un blocage d'ads/trackers (~3500 domaines) activable via block_ads=True ou automatique en mode MCP, ce qui simplifie la vie quand vous tournez sur un serveur (où les IPs des datacenter se font régulièrement filtrer). Botasaurus, lui, vous laisse gérer la rotation à la main.Détail sympa pour les bidouilleurs : y'a également un serveur MCP est intégré (pip install "scrapling[ai]"). Du coup Claude ou Cursor peuvent piloter Scrapling directement pour extraire des données, en réduisant la consommation de tokens car l'IA ne voit pas tout le HTML brut, juste ce qui est extrait. Pour les agents qui scrappent en boucle, c'est cool.Notez que les sponsors Platinum du projet sont tous des fournisseurs de proxies (DataImpulse, BirdProxies, Evomi, etc.). C'est logique vu l'usage du framework, mais gardez en tête que pour bypasser un Cloudflare sérieux à grande échelle, vous aurez besoin de proxies résidentiels payants, donc d'eux. L'outil est gratuit, mais le contournement industriel ne l'est pas.Pour installer, c'est pip install "scrapling[fetchers]" puis scrapling install pour récupérer les binaires navigateur. Une image Docker existe aussi (pyd4vinci/scrapling) et y'a même un shell interactif (scrapling shell) pour debugger vos sélecteurs en live.Bref, c'est carrément pas mal pour ceux qui scrapent régulièrement. Alors si BS4 vous fait pleurer, allez voir par ici .Et merci à Letsar pour le lien !Référenceshttps://medium.com/@d4vinci/creating-self-healing-spiders-with-scrapling-in-python-without-ai-web-scraping-4042a16ec4a5Cet article peut contenir des images générées à l'aide de l'IA - J'apporte le plus grand soin à chaque article, toutefois, si vous repérez une boulette, faites-moi signe !Vous avez aimé cet article ?Alors rejoignez ma communauté sur Patreon et accédez à des articles exclusifs, des tutos avancés et plein d'autres surprises que je réserve à mes soutiens. C'est grâce à vous que je peux continuer à partager ma passion depuis 20 ans !Rejoindre l'aventure Décuplez votre potentiel créatif avec les nouvelles offres o2switchContenu partenaireVous en avez assez d'être bridé par les restrictions de votre hébergeur actuel ? Il est temps de passer à la vitesse supérieure !Les nouvelles offres o2switch sont LA solution pour libérer enfin tout votre potentiel créatif.Avec l'offre Cloud à seulement 1,86 € HT/mois, profitez de 12 CPU Threads et 48 Go de RAM, de 42MB/s I/O, d'un espace disque illimité en NVMe, de 8 sous-comptes inclus pour gérer plusieurs sites, et d'une instance NextCloud 250Go. Le tout avec l'interface cPanel ultra intuitive, même si vous débutez !Et comme votre tranquillité d'esprit est primordiale, o2switch héberge vos données en France, avec un support prioritaire 24/7 N2 et des sauvegardes sur 45 jours. Antivirus ImunifyAV+ et TigerGuard veillent sur votre hébergement en temps réel. Cerise sur le gâteau : votre nom de domaine est inclus !Vous hésitez encore ? Trois offres s'adaptent à vos besoins : Grow à 7,00 € HT/mois, Cloud à 1,86 € HT/mois, ou Pro à 6,25 € HT/mois. C'est le moment de sauter le pas et de donner vie à tous vos projets !Découvrez les nouvelles offres o2switch📬 La newsletter Korben — Un concentré de tech, d'actu et de bidouille dans votre boite mail. S'inscrire
← Retour