❗ Avertissement : Ceci est la partie 2 de notre série en six parties sur le scraping Web avancé. Vous voulez commencer depuis le début ? Rattrapez votre retard en lisant la partie 1 !
Si vous êtes un adepte du scraping Web, vous connaissez probablement déjà la plupart des défis habituels. Mais avec l'évolution rapide du Web, en particulier grâce à l'essor de l'IA, de nombreuses nouvelles variables entrent en jeu dans le domaine du scraping. Pour devenir un expert du scraping Web, vous devez les maîtriser toutes ! 🔍
Dans ce guide, vous découvrirez des techniques avancées de scraping Web et vous découvrirez comment scraper les sites modernes d'aujourd'hui, même avec des SPA, des PWA et de l'IA dans le mix ! 💪
Autrefois, les sites Web n'étaient qu'un ensemble de pages statiques gérées par un serveur Web. Aujourd'hui, le Web ressemble davantage à une métropole animée. 🌇
Nous sommes passés du rendu côté serveur au rendu côté client. Pourquoi ? Parce que nos appareils mobiles sont plus puissants que jamais, il est donc logique de leur laisser gérer une partie de la charge. 📲
Bien sûr, vous savez probablement déjà tout cela, mais pour en arriver là où nous en sommes aujourd'hui, nous devons savoir d'où nous avons commencé. Aujourd'hui, Internet est un mélange de sites statiques, de sites dynamiques rendus par serveur, de SPA, de PWA, de sites pilotés par l'IA, etc. 🕸️
Et ne vous inquiétez pas : SPA, PWA et AI ne sont pas des acronymes secrets pour les agences gouvernementales. Décomposons cet alphabet. 🥣
SPA ( Single Page Application ) ne signifie pas qu'il s'agit littéralement d'une seule page, mais il gère la navigation sans tout recharger à chaque fois. Pensez-y comme à Netflix : cliquez et regardez le contenu changer instantanément sans ce rechargement de page ennuyeux. 🍿
C'est fluide, rapide et cela vous permet de rester dans le flux.
Les PWA sont comme des applications Web sous stéroïdes. 💊
Techniquement parlant, une PWA ( Progressive Web App ) utilise des fonctionnalités Web de pointe pour vous donner la sensation d'une application native directement depuis votre navigateur.
Fonctionnalité hors ligne ? ✅
Des notifications push ? ✅
Chargement quasi instantané grâce à la mise en cache ? ✅
Dans la plupart des cas, vous pouvez également installer des PWA directement sur votre appareil !
Les sites basés sur l'IA apportent une touche de magie à l'apprentissage automatique. Des conceptions générées dynamiquement aux chatbots en passant par les recommandations personnalisées, ces sites vous donnent l'impression que le site vous connaît . 🤖 ✨
Il ne s'agit pas seulement de naviguer. C'est une expérience interactive qui s'adapte à vous.
Ces catégories ne s'excluent pas mutuellement !
Vous pouvez les superposer comme un parfait. 🍨 Une PWA peut également être un SPA, et les deux peuvent exploiter l'IA pour rendre les choses plus intelligentes et plus rapides. Alors oui, ça peut devenir un peu fou !
Pour faire court, l'essor des SPA, des PWA et des sites basés sur l'IA a rendu le Web beaucoup plus complexe. Et oui, cela signifie que le scraping Web est plus difficile que jamais, avec une tonne de nouveaux facteurs à prendre en compte. 😣
Et qu'en est-il du Web 3.0 ? Il est encore un peu tôt pour dire quel sera son impact sur le web scraping, mais certains experts spéculent déjà…
Pour avoir une longueur d'avance sur les obstacles les plus courants (et ennuyeux) du scraping de sites modernes, regardez cette vidéo de notre ami Forrest Knight . Le chapitre 3 couvre exactement ce que vous recherchez. 👇
Voyons maintenant ce que vous devez prendre en compte lorsque vous effectuez un scraping Web avancé sur des sites modernes !
⚠️ Attention : ne vous découragez pas si les premiers conseils vous semblent familiers. Continuez, car de nombreuses nouvelles idées vous seront fournies au fur et à mesure que nous approfondissons ! 🧠
De nos jours, la plupart des sites sont soit entièrement rendus côté client via JavaScript (c'est-à-dire un rendu côté client ), soit comportent des sections dynamiques qui chargent des données ou modifient le DOM de la page lorsque vous interagissez avec elle.
Si vous avez utilisé un navigateur au cours de la dernière décennie, vous savez de quoi nous parlons. Cette récupération dynamique de données n'est pas magique : elle est alimentée par la technologie AJAX ! (Et non, pas le club de football Ajax 🔴⚪ — une autre sorte de magie ici 😉)
Vous savez probablement déjà ce qu'est AJAX, mais si ce n'est pas le cas, la documentation de MDN est un excellent point de départ . Maintenant, AJAX est-il un problème important pour le scraping Web ?
Avec des outils d'automatisation de navigateur comme Playwright, Selenium ou Puppeteer , vous pouvez commander à votre script de charger une page Web dans un navigateur, y compris les requêtes AJAX. Il vous suffit de choisir l'un des meilleurs outils de navigateur headless et vous êtes prêt !
Pour plus de conseils, lisez notre tutoriel complet sur le scraping de sites dynamiques en Python .
🚨 Mais attendez… Il y a une astuce de pro ! 🚨
La plupart des pages basées sur AJAX récupèrent des données dynamiques via des appels API. Vous pouvez intercepter ces requêtes en ouvrant l'onglet Réseau dans les outils de développement de votre navigateur lors du chargement d'une page :
Vous verrez soit :
Une ou plusieurs API REST vers différents points de terminaison.
Un ou plusieurs appels d'API GraphQL vers un seul point de terminaison, que vous pouvez interroger à l'aide de GraphQL .
Dans les deux cas, cela ouvre la porte au scraping en ciblant directement ces appels d'API. Il suffit d'intercepter et d'extraire ces données, c'est aussi simple que ça ! 🎉
Regardez la vidéo ci-dessous pour une présentation rapide :
Les pages Web sont plus interactives que jamais, et les concepteurs expérimentent constamment de nouvelles façons de nous maintenir engagés. D'un autre côté, certaines interactions, comme le défilement infini , sont même devenues la norme. (Vous êtes-vous déjà retrouvé à faire défiler sans fin Netflix ? Assurez-vous de regarder la bonne série !)
Alors, comment gérer toutes ces interactions délicates dans le scraping Web ? Roulement de tambour... 🥁
Avec les outils d'automatisation du navigateur ! (Oui, encore ! 🎉)
Les plus modernes, comme Playwright , disposent de méthodes intégrées pour gérer les interactions courantes. Et quand quelque chose d'unique apparaît et qu'ils ne couvrent pas ? Vous pouvez généralement ajouter du code JavaScript personnalisé pour faire l'affaire.
En particulier:
Playwright propose la méthode evaluate() pour exécuter du JS personnalisé directement sur la page.
Selenium fournit execute_script() , qui vous permet d'exécuter JavaScript dans le navigateur.
Nous savons que vous avez probablement déjà une idée de ces bases, donc pas besoin d'aller plus loin ici. Mais si vous voulez avoir toutes les informations, consultez ces guides complets :
C'est là que les choses deviennent piquantes ! 🌶️
Les PWA sont conçues pour fonctionner hors ligne et s'appuient fortement sur la mise en cache . Bien que cela soit formidable pour les utilisateurs finaux, cela crée un casse-tête pour le scraping Web car vous souhaitez récupérer de nouvelles données.
Alors, comment gérez-vous la mise en cache lors du scraping, en particulier lorsqu'il s'agit d'une PWA ? La plupart du temps, vous utiliserez un outil d'automatisation de navigateur. Après tout, les PWA sont généralement rendues côté client et/ou s'appuient sur une récupération de données dynamique.
La bonne nouvelle ? Les outils d'automatisation du navigateur démarrent de nouvelles sessions de navigation à chaque fois que vous les exécutez. Et dans le cas de Puppeteer et Playwright, ils se lancent même en mode navigation privée par défaut. Mais voici le problème : les sessions de navigation privée/nouvelles ne sont pas exemptes de cache ou de cookies ! 🤯
Plus vous interagissez avec un site dans votre script de scraping, plus il est probable que le navigateur commence à mettre en cache les requêtes, même en mode navigation privée. Pour résoudre ce problème, vous pouvez redémarrer périodiquement le navigateur headless.
Ou, avec Puppeteer, vous pouvez désactiver complètement la mise en cache avec une simple commande :
await page.setCacheEnabled(enabled)
Mais que se passe-t-il si le serveur derrière la PWA met en cache les données de son côté ? Eh bien, c'est une toute autre histoire... 👹
Malheureusement, vous ne pouvez pas faire grand-chose concernant la mise en cache côté serveur. En même temps, certains serveurs fournissent des réponses mises en cache en fonction des en-têtes des requêtes entrantes. Vous pouvez donc essayer de modifier certains en-têtes de requête, comme l' User-Agent . 🔄
Découvrez le meilleur User-Agent pour le web scraping !
Vous êtes-vous déjà demandé pourquoi les sites Web semblent vous montrer du contenu qui vous intéresse presque ? Ce n'est pas de la magie, c'est l'apprentissage automatique qui fonctionne. 💡
Aujourd'hui, de plus en plus de pages Web proposent un contenu personnalisé adapté à vos préférences. En fonction de vos recherches, de vos interactions avec le site, de vos achats, de vos vues et d'autres comportements en ligne, les algorithmes de machine learning comprennent ce que vous aimez et les pages Web proposent du contenu en conséquence .
Est-ce utile ? Absolument, ça fait gagner énormément de temps ! ⏱️
Est-ce éthique ? Eh bien, vous avez accepté ces conditions de service, alors... disons oui. 🤷
Mais voici le défi du web scraping : autrefois, on ne s'inquiétait que des sites qui modifiaient leur structure HTML de temps en temps. Aujourd'hui, les pages Web changent en permanence, offrant potentiellement une expérience différente à chaque fois que vous les visitez.
Alors, comment gérer cela ? Pour obtenir des résultats cohérents, vous pouvez démarrer vos outils d'automatisation de navigateur avec des sessions préenregistrées, qui contribuent à garantir que le contenu reste prévisible. Des outils comme Playwright fournissent également un objet BrowserContext à cette fin :
const browserContext = await browser.newContext({ // load the context storage state from a JSON file storageState: "session.json" }); const page = await context.newPage();
Pour éviter le contenu personnalisé, vous devez également viser à standardiser des paramètres tels que la langue et l’emplacement IP, car ceux-ci peuvent également influencer le contenu affiché. 🗺️
Et voici un dernier conseil : inspectez toujours les sites en mode navigation privée avant de les scraper. De cette façon, vous obtenez une session « à blanc », exempte de données personnalisées. Cela vous aide à mieux comprendre le contenu normalement disponible sur le site. 🥷
Maintenant, le sujet brûlant du moment : l'IA ! 🔥
L'IA réécrit la façon dont nous créons des sites Web. Ce qui prenait auparavant des mois se fait désormais en quelques secondes ou minutes ! ⏱️
Pour un aperçu rapide de la manière dont la technologie de création de sites Web basée sur l'IA transforme le jeu, regardez la vidéo suivante :
Résultat ? Les sites changent de présentation, de structure et de design plus rapidement que jamais. Même le contenu est traité par l'IA, les éditeurs produisant des quantités massives de texte, d'images et de vidéos en un éclair. ⚡
Et ce n’est que le début…
Imaginez un avenir où les sites peuvent générer des pages de manière dynamique en fonction de ce sur quoi vous cliquez ou de ce que vous recherchez. C'est comme s'ils se transformaient en temps réel, s'adaptant à chaque utilisateur.
Tout ce caractère aléatoire est un cauchemar pour les scripts de scraping Web traditionnels. 😱
Mais voici le revers de la médaille. Tout comme l'IA accélère les mises à jour des sites Web, vous pouvez utiliser le scraping Web basé sur l'IA pour adapter vos scripts à la volée. Vous souhaitez aller plus loin ? Lisez un guide sur l'IA pour le scraping Web .
Une autre solution possible, notamment pour éviter les erreurs, est de créer des processus indépendants qui surveillent les modifications des pages et vous alertent avant que votre script ne se brise. Par exemple, via un message Telegram. 📩
Découvrez comment créer un bot de notification Telegram de changement de page .
Presque toutes les solutions que nous avons abordées jusqu'à présent partent du principe que les sites modernes sont hautement interactifs. Cela signifie que si vous souhaitez les récupérer, vous devez utiliser un outil d'automatisation du navigateur. Mais cette approche présente un point faible : le navigateur lui-même !
Les navigateurs ne sont pas conçus pour le scraping ! 😲
Bien sûr, vous pouvez les modifier avec des extensions (comme avec Puppeteer Extra ) ou implémenter tous les ajustements mentionnés ci-dessus. Mais avec la détection de robots basée sur l'IA d'aujourd'hui, les navigateurs traditionnels sont de plus en plus faciles à repérer, en particulier lorsque les sites adoptent une technologie anti-scraping avancée comme l'analyse du comportement des utilisateurs .
Alors, quelle est la solution ? Un puissant navigateur de scraping qui :
Fonctionne en mode dirigé comme un navigateur classique pour se fondre dans la masse des utilisateurs réels.
S'adapte sans effort dans le cloud, vous permettant d'économiser du temps et des coûts d'infrastructure.
Intègre des adresses IP tournantes provenant de l'un des réseaux proxy les plus grands et les plus fiables.
Résout automatiquement les CAPTCHA, gère les empreintes digitales du navigateur et personnalise les cookies et les en-têtes, tout en gérant les nouvelles tentatives pour vous.
Fonctionne parfaitement avec les meilleurs outils d'automatisation tels que Playwright, Selenium et Puppeteer.
Ce n'est pas seulement une idée futuriste. C'est là, et c'est exactement ce que propose le Scraping Browser de Bright Data . Vous voulez en savoir plus ? Regardez cette vidéo :
Vous savez désormais ce qu’exige le scraping Web moderne, en particulier lorsqu’il s’agit de s’attaquer aux SPA et PWA pilotées par l’IA !
Vous avez certainement appris ici quelques conseils de pro, mais n'oubliez pas qu'il ne s'agit que de la deuxième partie de notre aventure en six parties sur le scraping Web avancé ! Alors, attachez votre ceinture de sécurité, car nous sommes sur le point de plonger dans encore plus de technologies de pointe, de solutions intelligentes et de conseils d'initiés.
Prochaine étape ? Les secrets d'optimisation pour des scrapers plus rapides et plus intelligents ! 🚀