# Web Scraping avec Python : Extraction de Données Livres
> Découvrez un pipeline ETL pour automatiser l'extraction de données web. Apprenez le scraping avec Python, BeautifulSoup et Requests pour générer des fichiers CSV.

Tags: python, web-scraping, beautifulsoup, etl, data-extraction, csv, automation, openclassrooms
## Automatiser l'Extraction et le Traitement des Données Livres avec Python

Présentation d'un projet de scraping réalisé sur le site 'Books to Scrape' dans le cadre d'une formation OpenClassrooms.

## Objectifs du Projet
* Extraire les informations produits de tous les livres.
* Parcourir toutes les catégories automatiquement.
* Gérer la pagination des résultats.
* Générer un fichier CSV distinct par catégorie.
* Mettre en place un pipeline ETL (Extract, Transform, Load).

## Architecture du Code
* **main.py** : Orchestrateur central.
* **Phases 1 à 4** : Logique de traitement modulaire.
* **scraper_utils.py** : Fonctions communes respectant le principe DRY (Don't Repeat Yourself).
* **Structure** : Dossier `scraped_data/` contenant les exports CSV et les images téléchargées.

## Pipeline ETL
1.  **EXTRACT** : Récupération brute via `Requests` et `BeautifulSoup`. Gestion des balises manquantes avec des valeurs par défaut ('N/A').
2.  **TRANSFORM** : Nettoyage technique (conversion des URLs relatives en absolues) et structuration via dictionnaires Python.
3.  **LOAD** : Sauvegarde structurée en fichiers CSV (compatibles Excel/Pandas) et stockage local des images avec nommage cohérent.

## Données Extraites
Les champs collectés incluent :
* Product Page URL, UPC, Title.
* Prices (Inc/Exc Tax), Availability.
* Product Description, Category, Rating.
* Image URL.

## Bonnes Pratiques & Évolutions
* Utilisation d'environnements virtuels.
* Code modulaire et commenté.
* Perspectives : Passage à l'asynchrone (`aiohttp`) et intégration de base de données (SQLite/PostgreSQL).
---
This presentation was created with [Bobr AI](https://bobr.ai) — an AI presentation generator.