From adb49d5484cf0eec2e73da65686569e57d4eb2e9 Mon Sep 17 00:00:00 2001 From: Muyue Date: Thu, 1 Jan 2026 18:10:17 +0100 Subject: [PATCH] Corriger le script scrape_all_periods et documenter son utilisation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remplacer data_2010_2026 par data dans scrape_all_periods.py (2 occurrences) - Ajouter la section 3.5 dans le README pour expliquer le scraping complet - Documenter le fonctionnement du script par périodes de 15 jours (2010-2026) - Expliquer la structure des fichiers générés et le processus automatique - Tester avec succès le scraping d'une période (134 courses récupérées) Le script scrape_all_periods.py permet maintenant: - Scraper toutes les courses de 2010 à 2026 par lots de 15 jours - Utiliser le répertoire data/ correctement - Fusionner automatiquement tous les CSV dans data/courses/courses_list.csv - Exécuter les scripts de post-traitement automatiquement 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush --- README.md | 22 ++++++++++++++++++++++ scripts/scrape_all_periods.py | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d74a983..134c03b 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,28 @@ Options: - `--max-pages`: Nombre maximum de pages à scraper - `--multithreading` / `--no-multithreading`: Activer/désactiver le multithreading +#### 3.5. Scraping complet par périodes (2010-2026) + +Pour récupérer toutes les courses de 2010 à 2026 par lots de 15 jours: + +```bash +python scripts/scrape_all_periods.py +``` + +Ce script va: +- Générer automatiquement 313 périodes de 15 jours +- Scraper en parallèle avec 8 workers (multithreading) +- Sauvegarder chaque période dans `data/courses/periods/` +- Fusionner toutes les données dans `data/courses/courses_list.csv` +- Exécuter automatiquement les scripts de post-traitement + +**Résultats:** +- Fichiers CSV individuels par période : `data/courses/periods/courses_YYYY-MM-DD_to_YYYY-MM-DD.csv` +- Fichier consolidé : `data/courses/courses_list.csv` +- Statistiques détaillées par année + +**Note**: Ce processus peut prendre plusieurs heures selon le nombre de courses et votre connexion internet. + #### 4. Rechercher des données **Rechercher un athlète:** diff --git a/scripts/scrape_all_periods.py b/scripts/scrape_all_periods.py index 9ac840a..ba26422 100755 --- a/scripts/scrape_all_periods.py +++ b/scripts/scrape_all_periods.py @@ -71,7 +71,7 @@ def scrape_period(period, period_index, total_periods): logging.info(f"[{period_index + 1}/{total_periods}] {len(courses)} courses pour {start_str} au {end_str}") # Sauvegarder immédiatement dans un fichier spécifique à la période - output_dir = os.getenv('OUTPUT_DIR', 'data_2010_2026') + output_dir = os.getenv('OUTPUT_DIR', 'data') period_dir = os.path.join(output_dir, 'courses', 'periods') os.makedirs(period_dir, exist_ok=True) @@ -277,7 +277,7 @@ def main(): logging.info(f"Temps moyen par période: {(end_time - start_time)/len(periods):.1f} secondes") # Fusionner tous les fichiers CSV - output_dir = os.getenv('OUTPUT_DIR', 'data_2010_2026') + output_dir = os.getenv('OUTPUT_DIR', 'data') merged_df = merge_all_period_courses(output_dir) if merged_df is not None: