La collecte automatisée de données web est un levier stratégique pour la veille concurrentielle, l’analyse de marché et l’alimentation de pipelines data. Cette formation couvre l’ensemble du spectre du web scraping en Python, des outils simples comme BeautifulSoup aux frameworks complets comme Scrapy, en passant par Selenium pour les sites dynamiques. Vous apprendrez aussi à gérer les aspects techniques avancés : parallélisation, authentification et CAPTCHAs.
Public visé
Développeurs, Data Scientists, Data Analysts, Data Engineers, chefs de projets.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Décrire le fonctionnement des Web scrapers
- Développer un Web scraper avec fonctionnalités avancées
- Activer des architectures multi-thread pour le scraping
Programme
Jour 1
Les fondamentaux du Web scraping
- Rappels sur Internet : modèle à sept couches, HTML, CSS, JavaScript, outils du développeur Web
- Aspects réglementaires et éthiques du Web scraping : marques déposées, copyrights, brevets…
- Applications du Web scraping : marketing, ventes, entraînement d’IA, développement de produits, recherche académique…
- Bien démarrer un projet de Web scraping
Travaux pratiques
- Création d’un premier Web scraper avec Jupyter et la librairie BeautifulSoup
Analyse HTML avancée
- Les objets de BeautifulSoup
- Naviguer à travers des structures arborescentes
- Gérer les expressions régulières
- Accéder à des attributs
- Expressions Lambda
- Gérer différentes mises en page de sites
- Structurer des crawlers : crawlers à base de recherche, à base de liens, par type de page
Travaux pratiques
- Développement d’un Web crawler mono-domaine ou multi-domaine
Introduction à Scrapy
- Exemple de scraper Scrapy
- Utilisation des règles
- Création d’items
- Items d’output
- Pipeline d’items
- Gestion des logs avec Scrapy
Travaux pratiques
- Création d’un Web scraper avec Scrapy
Jour 2
Scraping avancé
- Lecture de documents texte, CSV, PDF, MS Word
- Nettoyage de texte avec Pandas
- Travailler avec du texte normalisé
- Lire et résumer du langage naturel avec NLTK
- Analyse statistique et lexicographique avec NLTK
Travaux pratiques
- Création d’un Web scraper avancé capable de traiter le langage naturel
Crawling à travers des formulaires et interfaces de login
- Présentation de la librairie Requests
- Exemple de soumission d’un formulaire
- Gérer les boutons radio, les cases à cocher, et autres inputs
- Soumission de fichiers et images
- Gérer les logins et cookies
Travaux pratiques
- Amélioration du Web scraper en lui ajoutant des features liées aux formulaires et logins
Scraping sur du code JavaScript
- Rappels sur JavaScript, Ajax, et le HTML dynamique
- Exécuter des scripts JavaScript dans Python avec Selenium
- Autres Selenium WebDrivers
- Gérer les redirections
Jour 3
Scraping sur des API
- Rappels sur les API
- Parsing de JSON
- Documenter des API non-documentées
Gérer les CAPTCHA avec la reconnaissance d’images et de texte
- Librairies disponibles pour la gestion des CAPTCHA : Pillow, Tissaract, NumPy
- Exemple de reconnaissance d’images et de texte
- Entraînement de Tissaract pour la lecture de CAPTCHA
Travaux pratiques
- Amélioration du Web scraper en lui ajoutant des features de gestion de CAPTCHA
Parallélisation du Web scraping
- Rappel sur les processus et threads
- Exemple de crawling multi-thread
- Exemple de crawling multi-processus
Travaux pratiques
- Amélioration du Web scraper en lui ajoutant des features de gestion de code Javascript et d’API
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
- Python - Initiation
- Python - Calculs Scientifiques
- Data Science avec Python (Scikit-learn)
- Python pour tests d'intrusion
- Python - Perfectionnement
Formation DEV-PYTHON-310 — Web scraping avec Python. Domaine : Développement. Niveau : Avancé. Durée : 3 jours (21 heures). Mots-clés : python, web-scraping, beautifulsoup, scrapy, selenium, data. Cylian Formation, Dijon.