# Nouveau Scraper FFA - Approche Jour par Jour Ce script remplace l'ancienne méthode de scraping qui avait des problèmes d'erreurs 403/404. ## Ce qui a changé ### Problèmes de l'ancienne approche - Utilisait des périodes de 15 jours - Paramètre `frmsaisonffa=2026` fixe qui causait des erreurs - Erreurs 403/404 fréquentes - Difficile de relancer sur une date spécifique ### Nouvelle approche - Scraping **jour par jour** (plus robuste) - Utilise `frmsaisonffa=` (vide) pour éviter les filtres par saison - Récupère les courses et leurs résultats pour chaque jour - Sauvegarde progressive dans des CSV - **Colonne `jour_recupere`** pour savoir quel jour on a scrapé - Facile de relancer à partir d'une date spécifique ## Fichiers générés ### data/courses_daily.csv Contient toutes les courses récupérées avec les colonnes: - `jour_recupere`: Date pour laquelle on a récupéré la course (format YYYY-MM-DD) - `nom`: Nom de la course - `date`: Date de la course (format affiché par le site) - `lieu`: Lieu de la course - `discipline`: Discipline - `type`: Type de compétition - `niveau`: Niveau (Départemental, Régional, etc.) - `label`: Label - `lien`: URL principale de la course - `fiche_detail`: URL vers la fiche détaillée - `resultats_url`: URL vers la page des résultats ### data/results_daily.csv Contient tous les résultats des courses avec les colonnes: - `jour_recupere`: Date pour laquelle on a récupéré les résultats - `course_nom`: Nom de la course - `course_date`: Date de la course - `course_lieu`: Lieu de la course - `course_url`: URL de la page des résultats - `place`: Place obtenue - `resultat`: Résultat (temps/points) - `nom`: Nom de l'athlète - `prenom`: Prénom de l'athlète - `club`: Club de l'athlète - `dept`: Département - `ligue`: Ligue - `categorie`: Catégorie - `niveau`: Niveau - `points`: Points - `temps`: Temps réalisé ## Utilisation ### Scraping complet (du 01/01/2024 au 01/08/2026) ```bash python scripts/scraper_jour_par_jour.py ``` ### Estimation du temps - Environ 5-6 secondes par jour (avec récupération des résultats) - 944 jours à scraper = ~1.3 à 1.5 heures ### Reprise après interruption Si le script est interrompu, il continue d'ajouter aux fichiers CSV existants. Pour recommencer à zéro, supprimez les fichiers: ```bash rm data/courses_daily.csv data/results_daily.csv ``` ### Logs Le script génère des logs dans `scraper_jour_par_jour.log` et affiche la progression en temps réel. ## Modifications pour tests Si vous voulez tester sur une période plus courte, modifiez les dates dans `scripts/scraper_jour_par_jour.py`: ```python # Ligne 276-277 dans la fonction main() start_date = "2024-01-01" # Modifier ici end_date = "2024-01-31" # Modifier ici ``` ## Avantages de cette approche 1. **Robustesse**: Scraping jour par jour évite les problèmes de pagination 2. **Transparence**: La colonne `jour_recupere` permet de savoir exactement ce qui a été récupéré 3. **Reprise facile**: On peut relancer à n'importe quel moment 4. **Progressive sauvegarde**: Les données sont sauvegardées au fur et à mesure 5. **Pas de duplication**: Les courses sont clairement identifiées par leur jour de récupération ## URL utilisée Le script utilise cette URL pour chaque jour: ``` https://www.athle.fr/bases/liste.aspx?frmpostback=true&frmbase=calendrier&frmmode=1&frmespace=0&frmsaisonffa=&frmdate1=YYYY-MM-DD&frmdate2=YYYY-MM-DD&frmtype1=&frmniveau=&frmligue=&frmdepartement=&frmniveaulab=&frmepreuve=&frmtype2=&frmtype3=&frmtype4= ``` Le paramètre clé est `frmsaisonffa=` (vide) qui permet de récupérer les résultats sans filtrer par saison.