La base du traitement par lot (scraping)
Rappel des fondamentaux
Parcourir le système de fichiers
Gérer proprement l’encoding
Lire et écrire des fichiers
Analyser le JSON, le CSV et l’XML
Les générateurs
Travaux Pratiques
Crawler une collection de CSV pour en faire un rapport statistique
Parcours de données sur le Web
Mon premier scraper
Rappel sur le protocole HTTP
Requêtes simples avec Request
Stocker les données avec SQLAlchemy
Analyser du HTML avec Beautiful Soup
Travaux Pratiques
Crawler les articles de Wikipédia sans passer par l’API, stocker le résultat en base
Questions de performances
Concurrence et parallélisme
Threads et GIL
Utiliser plusieurs cœurs avec le multiprocessing
Programmation I/O asyncrone
Performances et éthiques
Utilisation d’une forme de cache : disque, RAM et redis
Introduire un délai aléatoire
Le fichier robot.txt
Travaux Pratiques
Crawler les articles de Wikipédia via l’API et Asyncio
Les API professionnelles
Concurrence et parallélisme
Authentifications et token
Anatomie d’une API REST
Retry propre
Gérer le rate limiting
Gestion des erreurs
Logging de l’application
Exemple avec un client twitter fait à la main
Travaux Pratiques
Crawler les posts de twitter via l’API officielle en utilisant un client déjà existant
Industrialiser le crawling
Scrappy, un framework de scraping automatique
Introduction aux mécanismes de base du framework
Travaux Pratiques
Crawler les articles de Wikipédia en utilisant scrappy
Selenium, un browser headless
Utiliser Selenium à la main
Utiliser Scrappy et Selenium ensemble
Travaux Pratiques
Crawler les images et les commentaires d’imgur avec scrappy et selenium