- Scraping vidéo : conversion d’une capture vidéo d’écran en données structurées en l’envoyant à un modèle Google Gemini
- Utilisation de modèles d’image : extraction de données depuis des images et des PDF non structurés avec Gemini, GPT-4o, Claude 3.7, etc.
- Utilisation de bibliothèques modernes comme Playwright : automatisation du navigateur, avec intégration de modèles d’analyse vidéo/image
- Atelier interactif d’une heure animé par Simon Willison lors de la conférence de journalisme de données NICAR 2025
Structure de l’atelier
1. Git scraping
- Qu’est-ce qu’un Git scraper ?
- Il permet de scraper régulièrement un site web ou une ressource via GitHub Actions et d’en enregistrer les changements
- Il peut être configuré facilement en clonant un dépôt modèle depuis un dépôt GitHub
- Il suffit d’indiquer l’URL d’un site web ou d’un fichier JSON pour une exécution automatique quotidienne
- En ajoutant
.atom à l’URL de la page des commits d’un dépôt, il est possible de générer un flux RSS
- Cela permet de suivre en temps réel les changements d’un site web via un lecteur RSS
2. Scraping JavaScript dans le navigateur
- Pour les sites web complexes, extraire des données par simple parsing HTML est souvent difficile
- Il est possible de scraper après chargement de la page dans un vrai navigateur en utilisant JavaScript
- Extraction de données de tableaux : les outils de développement du navigateur permettent de convertir les données d’un tableau en JSON avec JavaScript
- Gestion des pages à défilement infini : JavaScript permet de collecter automatiquement le contenu qui continue à s’ajouter à la page
- Automatisation avec shot-scraper :
- Une commande spécifique permet de capturer une capture d’écran de la page web entière
- Après exécution de code JavaScript, les données peuvent être exportées au format JSON
3. Extraction de données structurées avec les LLM
- Les LLM (Large Language Models) permettent de transformer des données non structurées en données structurées
- Une clé API OpenAI ou Google Gemini est nécessaire
- L’exécution est possible dans Codespaces ou dans un environnement Python local
- Extraction de données à l’aide d’un schéma
- Un schéma (
schema) définit le format des données que le LLM doit renvoyer
- Par exemple, on peut y définir un titre, une URL, une date, etc., afin d’obtenir des données dans un format cohérent
- Lors du scraping d’une page web, la sortie peut ainsi être basée sur un schéma
- Calcul des coûts et choix du modèle
- Chaque modèle entraîne des coûts selon le nombre de tokens en entrée et en sortie
- Le modèle GPT-4o mini est peu coûteux, mais d’autres modèles peuvent être chers
- Par exemple, le modèle GPT-4.5 peut coûter beaucoup plus pour une même tâche
- Les modèles Gemini sont relativement économiques et offrent diverses options
- Extraction de données depuis des PDF
- Il est possible d’extraire des données de documents PDF comme le FEMA Daily Operations Briefing
- Les modèles Gemini peuvent prendre un fichier PDF en entrée et produire une sortie structurée au format JSON
- Ils permettent aussi d’extraire des tableaux ou du texte spécifiques dans un PDF
- Extraction de données depuis des images
- GPT-4o peut extraire des données à partir d’images
- Il est possible de fournir une capture d’écran au modèle pour obtenir une sortie structurée
- Conseils pour choisir un modèle
- Le modèle Gemini 2.0 Pro est gratuit, mais soumis à des limitations de débit strictes
- Il faut tester plusieurs modèles en tenant compte du coût et des performances
- Selon les caractéristiques de la page web, shot-scraper peut s’avérer plus utile qu’un LLM
- Défis du traitement de données complexes
- Pour extraire des données depuis des infographies complexes ou des cartes, les performances peuvent varier selon le modèle
- Il est nécessaire d’essayer différents modèles afin de choisir celui qui offre les meilleurs résultats
4. Scraping vidéo avec Google AI Studio
- Le scraping vidéo est une méthode puissante pour extraire des données de sites web difficiles à scraper par des moyens classiques
- Les modèles Google Gemini peuvent prendre une vidéo en entrée et la convertir en données structurées au format JSON
- Après enregistrement de l’écran, il est possible d’envoyer la vidéo au modèle d’IA pour en extraire des données
- Processus de scraping vidéo
- Aller à la section du site web contenant les données souhaitées
- Lancer un outil d’enregistrement d’écran (par exemple QuickTime Player)
- Naviguer sur le site web → faire une pause sur les éléments importants
- Importer la vidéo enregistrée dans Google AI Studio
- Rédiger un prompt pour le modèle dans AI Studio, puis extraire les données
- Utiliser l’outil d’extraction par schéma pour structurer les données au format JSON
- Avantages du scraping vidéo
- Il permet de contourner des structures de site web complexes
- Il est utile pour les sites nécessitant un rendu JavaScript
- Il permet d’extraire différents types de données dans une page, comme du texte, des tableaux ou des images
- Points d’attention
- La plupart des fonctions proposées par AI Studio sont gratuites, mais les données envoyées peuvent être utilisées pour l’entraînement
- Il vaut mieux ne pas y envoyer de données sensibles
- Pour les sites web complexes, le scraping vidéo peut être plus efficace que d’autres techniques de scraping
- Option de streaming en temps réel
- L’option Stream Realtime d’AI Studio permet d’extraire des données en temps réel
- Elle peut aussi être efficace pour des contenus dynamiques difficiles à scraper
- Application dans les rédactions
- Ces techniques sont utiles aux rédactions pour l’extraction de données complexes et l’automatisation
- Il est possible de tester les performances et la précision des modèles Gemini pour déterminer l’approche optimale
- La collaboration et les retours restent possibles après l’atelier
Outils et ressources supplémentaires
- git-scraper-template – Modèle de configuration pour le Git scraping
- shot-scraper-template – Modèle d’automatisation de captures d’écran de pages web
- shot-scraper har - Génération d’archives HTML.
--zip permet aussi de créer un fichier compressé (incluant JSON et autres assets)
- git-history – Conversion de l’historique des commits Git en base de données SQLite
3 commentaires
Hum… utiliser GitHub Actions semble probablement être une violation de la politique de GitHub.
Ce serait vraiment bien s’il y en avait aussi pour Android.
S’il est doté de fonctionnalités pour contourner les protections anti-bot, il pourrait bien devenir le gagnant du marché.