# 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).

Tags: python, web-scraping, etl-pipeline, beautifulsoup, data-engineering, openclassrooms, csv
## Projet : Scraping de données – Books to Scrape
* Formation OpenClassrooms : Création d'un pipeline ETL en Python.
* Technologies : Python, Requests, BeautifulSoup, CSV.

## Objectifs du Projet
* Développer une application ETL (Extract, Transform, Load).
* Extraire les catégories de livres et scraper les données produits.
* Gérer la pagination et générer des fichiers CSV par catégorie.

## Architecture Modulaire & DRY
* Structure : `main.py` (orchestrateur), `scraper_utils.py` (logique commune).
* Données stockées dans `scraped_data/` (sous-dossiers CSV et images).
* Respect du principe DRY (Don't Repeat Yourself) pour une meilleure maintenabilité.

## Pipeline ETL Global
* **Extract** : Récupération du HTML brut avec Requests et parsing avec BeautifulSoup (titres, prix, UPC, images).
* **Transform** : Nettoyage des données (strip), normalisation des URLs relatives en absolues, et gestion des valeurs manquantes ('N/A').
* **Load** : Exportation des métadonnées en fichiers CSV et téléchargement binaire des images nommées par UPC.

## Fonctionnalités & Bonnes Pratiques
* Menu interactif pour scraper un livre, une catégorie ou l'intégralité du site.
* Utilisation du `.gitignore` pour exclure les données générées (`scraped_data/`) et l'environnement virtuel (`venv/`).

## Améliorations Futures
* Conversion des notes textuelles en valeurs numériques.
* Transition vers une base de données SQLite ou PostgreSQL.
* Ajout de délais (time.sleep) pour respecter l'éthique du serveur.
---
This presentation was created with [Bobr AI](https://bobr.ai) — an AI presentation generator.