Corriger le script scrape_all_periods et documenter son utilisation
- 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 <crush@charm.land>
This commit is contained in:
22
README.md
22
README.md
@@ -176,6 +176,28 @@ Options:
|
|||||||
- `--max-pages`: Nombre maximum de pages à scraper
|
- `--max-pages`: Nombre maximum de pages à scraper
|
||||||
- `--multithreading` / `--no-multithreading`: Activer/désactiver le multithreading
|
- `--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
|
#### 4. Rechercher des données
|
||||||
|
|
||||||
**Rechercher un athlète:**
|
**Rechercher un athlète:**
|
||||||
|
|||||||
@@ -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}")
|
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
|
# 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')
|
period_dir = os.path.join(output_dir, 'courses', 'periods')
|
||||||
os.makedirs(period_dir, exist_ok=True)
|
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")
|
logging.info(f"Temps moyen par période: {(end_time - start_time)/len(periods):.1f} secondes")
|
||||||
|
|
||||||
# Fusionner tous les fichiers CSV
|
# 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)
|
merged_df = merge_all_period_courses(output_dir)
|
||||||
|
|
||||||
if merged_df is not None:
|
if merged_df is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user