Transcript
00:00:00Voici Scrapling, un scraper Python qui tente de résoudre le pire aspect du web scraping.
00:00:05Le scraper fonctionne aujourd'hui, puis casse dès que le site change. Une classe renommée,
00:00:10une balise div déplacée, une vérification anti-bot, et voilà que votre pipeline de données est mort. La promesse de Scrapling est que
00:00:17votre scraper peut s'adapter au lieu de tomber en panne. Il compte plus de 53 000 étoiles sur GitHub,
00:00:22et prend en charge l'analyse adaptative, le fetch furtif et les workflows de crawler plus importants.
00:00:27Je vais tester la seule question qui compte vraiment.
00:00:30Peut-il survivre à un changement de site sans réécrire les sélecteurs ? Nous allons le découvrir.
00:00:40Alors qu'est-ce que Scrapling ? Scrapling est un framework de web scraping Python adaptatif tout-en-un.
00:00:46Vous bénéficiez d'un analyseur auto-cicatrisant, de fetchers furtifs, d'un fetch basé sur navigateur si JavaScript est nécessaire,
00:00:51et d'un framework spider pour les crawls plus importants. Une installation, une API. Cela signifie moins de scrapers
00:00:57en panne et plus de données exploitables récupérées. Voyons maintenant la partie qui compte vraiment.
00:01:03Si vous aimez coder des outils pour accélérer votre workflow, n'oubliez pas de vous abonner. Nous sortons des vidéos
00:01:08tout le temps. Maintenant, j'ai une configuration de base ici, n'est-ce pas ? J'ai déjà installé Scrapling, donc nous irons vite
00:01:13sur cette partie. Un import et un appel suffisent pour obtenir la page. Tout en haut, j'ai créé du HTML qui change.
00:01:21L'un est un site de départ générique. Ensuite, j'ai gardé la même chose, mais j'ai changé les sélecteurs CSS.
00:01:27Disons que je veux le nom et le prix du produit. Normalement, je pourrais les récupérer avec des sélecteurs CSS,
00:01:34n'est-ce pas ? Donc page CSS, je mets mon sélecteur, auto-save, true. Je peux faire ça et ça va
00:01:40fonctionner et nous obtiendrons un dictionnaire de données. Ça a l'air normal. Deux sélecteurs, un dictionnaire,
00:01:46je passe à la suite. C'est tout. Mais en même temps, c'est justement le problème, car un scraper normal fonctionne
00:01:52très bien jusqu'à ce que la page change. Maintenant, que se passe-t-il si le site change aléatoirement du jour au lendemain ? Ils le redessinent.
00:01:58Ils font quelque chose pour empêcher cela. Donc le titre du produit devient en-tête d'article ou le prix devient
00:02:04valeur de prix. Il y a les mêmes données sur la page, mais tout le DOM change. Les anciens sélecteurs devraient
00:02:11être morts. Et c'est là que la plupart des scrapers vont simplement casser. Mais maintenant, nous pouvons activer le mode adaptatif.
00:02:18Un changement, autosave equals true devient adaptive equals true. Donc maintenant, je peux toujours mettre le titre du produit
00:02:26avec adaptive défini sur true. Même donnée. Je n'ai pas changé les sélecteurs. C'est une structure de page différente sans
00:02:34réécriture de sélecteur. C'est l'idée principale ici. Maintenant, quand vous scrapez un élément avec autosave true,
00:02:40Scrapling enregistre des indices à son sujet. Donc il va enregistrer des choses comme la balise, les attributs,
00:02:44les parents et enfants, tout texte voisin, probablement la position dans le DOM et la forme structurelle. Donc quand un
00:02:50nom de classe change, Scrapling a encore d'autres indices. Il n'a pas besoin que tout le site reste identique.
00:02:56Il lui suffit d'un signal structurel suffisant pour reconnaître à nouveau l'élément. Et c'est
00:03:01la partie qui compte, car les vraies pannes de scraper ne sont presque jamais une refonte totale. C'est une classe renommée,
00:03:06un nouveau wrapper, une mise en page décalée, une toute petite chose. C'est exactement ce pour quoi le matching adaptatif est conçu.
00:03:13Scrapling a trois grandes pièces qui comptent vraiment. La première est l'analyseur adaptatif, ce que vous venez de voir.
00:03:18Ensuite, il y a le fetcher multiple, un workflow, le bon outil pour le travail. Le fetcher opte pour du HTTP simple,
00:03:25rapide pour les pages web simples. Le fetcher furtif peut contourner les anti-bots si nécessaire. Le fetcher dynamique est un vrai
00:03:32navigateur pour les sites lourds en JS. Une API, échangez le fetcher, gardez le code. Le framework spider sert quand les scripts rapides
00:03:39deviennent un vrai crawler. Crawling asynchrone, pause et reprise, rotation de proxy, streaming, et toutes ces
00:03:46sessions mixtes. Les choses que vous ajoutez habituellement plus tard, c'est déjà là. Scrapling n'est pas juste un autre
00:03:53analyseur. Il remplace la stack de scraping. Requests, Beautiful Soup, Playwright, logique de réessai, assistants de proxy,
00:04:00code de spider avec un seul workflow. Scrapling ne dit pas que Beautiful Soup est inutile et ne dit pas non plus
00:04:06que Playwright ou Scrapy sont morts. Beautiful Soup plus Requests reste génial pour les pages simples. C'est facile,
00:04:13c'est lisible et tout le monde comprend, mais cela ne vous donne aucun type de furtivité. Cela ne vous donne
00:04:20pas de sélecteurs adaptatifs et ne rend pas le JavaScript. Et pour des travaux d'analyse plus importants, cela peut
00:04:26devenir le vrai goulot d'étranglement. Maintenant, Scrapy est puissant. Si vous construisez une infrastructure
00:04:31de crawling sérieuse, Scrapy mérite toujours du respect, mais Scrapy signifie souvent paramètres, pipelines, middleware,
00:04:36extensions et beaucoup plus de configuration. Playwright et Selenium sont géniaux quand vous avez besoin d'un vrai navigateur.
00:04:42Parfois, la page a juste besoin de JavaScript. Il n'y a pas moyen de contourner ça. Mais les navigateurs sont lourds. Ils sont
00:04:48plus lents que le HTTP brut et ils utilisent plus de mémoire. Et encore, ils ne règlent toujours pas le problème des sélecteurs
00:04:54cassés. Ils exécutent la page. Ils ne comprennent pas ce que votre scraper voulait extraire. Donc avec Scrapling,
00:05:01vous pouvez utiliser un fetch rapide quand vous le pouvez, la furtivité quand vous en avez besoin, le rendu navigateur quand la page
00:05:06l'exige et utiliser l'analyse adaptative. Donc un petit changement de front-end ne fait pas tout exploser. Maintenant, tout ça
00:05:12ne signifie pas que Scrapling n'a pas de problèmes. Si vous avez affaire à une protection au niveau du DOM,
00:05:17à un fingerprinting avancé ou à des limites de débit agressives, vous pourriez toujours avoir besoin de bons proxies. Donc Scrapling peut
00:05:23aider, mais il ne vous rend pas invisible. Le fetch dynamique peut aussi signifier une configuration navigateur supplémentaire. C'est
00:05:29juste le compromis à faire quand le rendu JavaScript est impliqué. Voici matière à réflexion pour tout cela.
00:05:34Scrapling vaut la peine d'être essayé si vous faites du vrai travail de scraping, surtout si vous construisez des pipelines de données,
00:05:41des jobs RAG, des agents IA, ou tout ce qui doit continuer à tourner après que le site cible change. La
00:05:47plus forte raison de l'utiliser n'est pas qu'il rend le scraping possible. Nous avons déjà des outils qui peuvent
00:05:53le faire, n'est-ce pas ? La plus forte raison est qu'il réduit la maintenance. Maintenant, je passerais probablement
00:05:59si vous avez un tout petit script, n'est-ce pas ? Requests et Beautiful Soup feront l'affaire,
00:06:04si vous aimez coder des outils comme ça, assurez-vous de vous abonner à la chaîne BetterStack. On se voit dans une autre vidéo.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video