Made byBobr AI

Pipeline ETL Python : Scraping Books to Scrape

Découvrez une architecture modulaire pour un projet de scraping Python utilisant Requests et BeautifulSoup selon un pipeline ETL (Extract, Transform, Load).

#python#web-scraping#etl-pipeline#beautifulsoup#data-engineering#openclassrooms#csv
Watch
Pitch

Pipeline ETL

Projet : Scraping de données – Books to Scrape

Formation OpenClassrooms – Python Pipeline ETL

> Python | Requests | BeautifulSoup | CSV
Made byBobr AI

Objectifs du Projet

Développer une application Python respectant un pipeline ETL (Extract, Transform, Load).

  • Extraire toutes les catégories de livres
  • Scraper les données produit complètes
  • Gérer automatiquement la pagination
  • Générer un fichier CSV par catégorie
Made byBobr AI

Vision Globale

Application entièrement automatisée et reproductible.

1
Accès à la page d’accueil
2
Extraction des catégories
3
Parcours des catégories
4
Scraping des pages produit
5
Sauvegarde des données et images
Made byBobr AI

Architecture Modulaire & DRY

project/
│
├── main.py (Orchestrator)
├── scraper_utils.py (Common Logic)
├── requirements.txt
│
├── scraped_data/
│   ├── csv/ (Travel.csv, ...)
│   └── images/ (book_upc.jpg, ...)

Séparation des responsabilités : Chaque fichier a un rôle unique.

DRY (Don't Repeat Yourself) : Logique commune dans utils.

Évolutivité : Code plus lisible et facile à maintenir.

Made byBobr AI

Pipeline ETL Global

E

E: EXTRACT

Scraping HTML avec Requests & BeautifulSoup. Catégories, Produits, URLs.

T

T: TRANSFORM

Nettoyage (strip), Normalisation URLs, Gestion des valeurs manquantes ('N/A').

L

L: LOAD

Génération CSV par catégorie et téléchargement des images (UPC).

Made byBobr AI
PHASE 1 & 2

Phase Extract

Bibliothèques :

  • Requests : Récupération du brut HTML
  • BeautifulSoup : Parsing et Navigation DOM

Cibles HTML :

  • : Titre du Livre

  • : Données produit (UPC, Prix)
  • : URLs Images
  • Made byBobr AI

    Phase Transform : Nettoyage

    Données Brutes

    • Normalisation des URLs : Relatives (../../) vers Absolues (http)

    • Nettoyage texte : Strip() des espaces, suppression caractères unicodes

    • Valeurs manquantes : Remplacement par 'N/A' pour éviter les crashs

    Données Propres

    Made byBobr AI

    Phase Load : CSV & Images

    Outputs CSV

    Un fichier par catégorie (ex: Mystery.csv). Contient l'ensemble des métadonnées produits structurées.

    Outputs Images

    Téléchargement binaire propre. Nommage par UPC (ex: a897fe39b.jpg) pour éviter les doublons.

    Made byBobr AI

    Démonstration & Menu Interactif

    1. Scraper un livre
    2. Scraper une catégorie
    3. Tout scraper
    4. Télécharger images

    Permet de tester et déboguer chaque phase indépendamment sans relancer tout le pipeline.

    Made byBobr AI

    Bonnes Pratiques Git

    .gitignore essentiel :

    Exclusion du dossier 'scraped_data/' et 'venv/'

    Pourquoi ?

    Les données générées ne sont pas versionnées. Repository propre et léger.

    Made byBobr AI

    Améliorations Futures

    ⚡ Data Quality

    Conversion des notes textuelles ('Five') en chiffres (5) pour analyse.

    🛡️ Robustesse

    Gestion avancée des erreurs et logging pour le débogage.

    ⏱️ Performance & Éthique

    Ajout de délais (time.sleep) pour limiter la charge serveur.

    💾 Stockage

    Transition du CSV vers une base de données (SQLite/PostgreSQL).

    Made byBobr AI

    Conclusion & Perspectives

    ✓ Projet conforme aux attentes ETL
    ✓ Architecture modulaire et maintenable
    🚀 Améliorations Futures : SQL, Logs Asynchrones
    Made byBobr AI
    Bobr AI

    DESIGNER-MADE
    PRESENTATION,
    GENERATED FROM
    YOUR PROMPT

    Create your own professional slide deck with real images, data charts, and unique design in under a minute.

    Generate For Free

    Pipeline ETL Python : Scraping Books to Scrape

    Découvrez une architecture modulaire pour un projet de scraping Python utilisant Requests et BeautifulSoup selon un pipeline ETL (Extract, Transform, Load).

    Projet : Scraping de données – Books to Scrape

    Formation OpenClassrooms – Python Pipeline ETL

    Python | Requests | BeautifulSoup | CSV

    Objectifs du Projet

    Développer une application Python respectant un pipeline ETL (Extract, Transform, Load).

    Extraire toutes les catégories de livres

    Scraper les données produit complètes

    Gérer automatiquement la pagination

    Générer un fichier CSV par catégorie

    Vision Globale

    Application entièrement automatisée et reproductible.

    Accès à la page d’accueil

    Extraction des catégories

    Parcours des catégories

    Scraping des pages produit

    Sauvegarde des données et images

    Architecture Modulaire & DRY

    project/ │ ├── main.py (Orchestrator) ├── scraper_utils.py (Common Logic) ├── requirements.txt │ ├── scraped_data/ │ ├── csv/ (Travel.csv, ...) │ └── images/ (book_upc.jpg, ...)

    Séparation des responsabilités : Chaque fichier a un rôle unique.

    DRY (Don't Repeat Yourself) : Logique commune dans utils.

    Évolutivité : Code plus lisible et facile à maintenir.

    Pipeline ETL Global

    E: EXTRACT

    Scraping HTML avec Requests & BeautifulSoup. Catégories, Produits, URLs.

    T: TRANSFORM

    Nettoyage (strip), Normalisation URLs, Gestion des valeurs manquantes ('N/A').

    L: LOAD

    Génération CSV par catégorie et téléchargement des images (UPC).

    Phase Extract

    Requests : Récupération du brut HTML

    BeautifulSoup : Parsing et Navigation DOM

    <h1> : Titre du Livre

    <table> : Données produit (UPC, Prix)

    <div class='image_container'> : URLs Images

    Phase Transform : Nettoyage

    Normalisation des URLs : Relatives (../../) vers Absolues (http)

    Nettoyage texte : Strip() des espaces, suppression caractères unicodes

    Valeurs manquantes : Remplacement par 'N/A' pour éviter les crashs

    Phase Load : CSV & Images

    Outputs CSV

    Un fichier par catégorie (ex: Mystery.csv). Contient l'ensemble des métadonnées produits structurées.

    Outputs Images

    Téléchargement binaire propre. Nommage par UPC (ex: a897fe39b.jpg) pour éviter les doublons.

    Démonstration & Menu Interactif

    1. Scraper un livre 2. Scraper une catégorie 3. Tout scraper 4. Télécharger images

    Permet de tester et déboguer chaque phase indépendamment sans relancer tout le pipeline.

    Bonnes Pratiques Git

    .gitignore essentiel :

    Exclusion du dossier 'scraped_data/' et 'venv/'

    Pourquoi ?

    Les données générées ne sont pas versionnées. Repository propre et léger.

    Améliorations Futures

    Data Quality

    Conversion des notes textuelles ('Five') en chiffres (5) pour analyse.

    Robustesse

    Gestion avancée des erreurs et logging pour le débogage.

    Performance & Éthique

    Ajout de délais (time.sleep) pour limiter la charge serveur.

    Stockage

    Transition du CSV vers une base de données (SQLite/PostgreSQL).

    Conclusion & Perspectives

    Projet conforme aux attentes ETL

    Architecture modulaire et maintenable

    Améliorations Futures : SQL, Logs Asynchrones

    • python
    • web-scraping
    • etl-pipeline
    • beautifulsoup
    • data-engineering
    • openclassrooms
    • csv