diff --git a/docs/SCRAPER_REPRISE.md b/docs/SCRAPER_REPRISE.md new file mode 100644 index 0000000..9713b5a --- /dev/null +++ b/docs/SCRAPER_REPRISE.md @@ -0,0 +1,178 @@ +# Script de Reprise du Scraper FFA + +## 📋 Description + +Le script `resume_scraping.py` permet de reprendre le scraping Ă  partir d'une date spĂ©cifique aprĂšs un crash, une interruption, ou une erreur du scraper principal. + +## 🚹 ProblĂšme RĂ©solu + +### Crash du scraper principal +Le scraper principal (`scraper_jour_par_jour.py`) peut rencontrer des erreurs critiques qui interrompent son fonctionnement: +- **Erreur "invalid session id"**: La session Chrome devient invalide aprĂšs un crash +- **Chrome crashes**: Le navigateur Chrome peut planter aprĂšs une longue pĂ©riode d'exĂ©cution +- **Memory leaks**: ProblĂšmes de mĂ©moire aprĂšs plusieurs heures de scraping +- **Timeouts**: DĂ©lais d'attente dĂ©passĂ©s + +### Solution +Au lieu de relancer le scraper depuis le dĂ©but (ce qui perdrait plusieurs heures de donnĂ©es), le script de reprise: +1. Repart de la date spĂ©cifiĂ©e (gĂ©nĂ©ralement lĂ  oĂč le crash s'est produit) +2. Continuera d'ajouter aux fichiers CSV existants +3. Conserve toutes les donnĂ©es dĂ©jĂ  rĂ©cupĂ©rĂ©es +4. Termine jusqu'Ă  la date de fin (2026-08-01) + +## 📝 Utilisation + +### Lancer le script de reprise + +```bash +python scripts/resume_scraping.py +``` + +### Lancer en arriĂšre-plan + +```bash +nohup python scripts/resume_scraping.py > resume_scraping.log 2>&1 & +``` + +### Surveiller la progression + +```bash +# Voir les logs en temps rĂ©el +tail -f resume_scraping.log + +# Voir les statistiques actuelles +tail -5 resume_scraping.log | grep "Jours traitĂ©s:" + +# VĂ©rifier la taille des fichiers +ls -lh data/ +``` + +## ⚙ Configuration + +### Modifier la date de reprise + +Si vous devez reprendre Ă  une date diffĂ©rente, modifiez le script: + +```python +# Dans scripts/resume_scraping.py, ligne 27 +resume_date = "2024-04-08" # Modifier cette date +``` + +### Modifier la date de fin + +Si vous devez changer la date de fin: + +```python +# Dans scripts/resume_scraping.py, ligne 30 +end_date = "2026-08-01" # Modifier cette date +``` + +## 📊 Comportement + +### Ajout aux fichiers existants + +Le script de reprise **ajoute** aux fichiers CSV existants: +- `data/courses_daily.csv`: Ajoute les nouvelles courses +- `data/results_daily.csv`: Ajoute les nouveaux rĂ©sultats + +Les donnĂ©es existantes ne sont pas modifiĂ©es ou perdues. + +### VĂ©rification des dates + +Le script utilise la mĂȘme logique que le scraper principal: +- Scraping jour par jour +- RĂ©cupĂ©ration des courses et rĂ©sultats +- Sauvegarde progressive + +### Logs + +Les logs sont sauvegardĂ©s dans `resume_scraping.log` avec: +- Date et heure de chaque action +- Nombre de courses rĂ©cupĂ©rĂ©es par jour +- Nombre de rĂ©sultats rĂ©cupĂ©rĂ©s par course +- Erreurs et avertissements + +## 🔍 Exemple de sortie + +``` +============================================================ +🔄 Scraper FFA - Reprise +============================================================ +Reprise Ă  partir du: 2024-04-08 +Fin: 2026-08-01 +Fichiers de sortie: data/courses_daily.csv, data/results_daily.csv +============================================================ +⚠ Ce script va continuer d'ajouter aux fichiers existants +============================================================ +2026-01-02 15:47:23,670 - INFO - Aucune course trouvĂ©e pour 2024-04-08 +2026-01-02 15:47:27,051 - INFO - 1 courses trouvĂ©es pour 2024-04-09 +2026-01-02 15:47:31,413 - INFO - 18 courses trouvĂ©es pour 2024-04-10 +... +Jours traitĂ©s: 1%| | 10/846 [01:00<13:00, 65s/jour] +... +``` + +## 🐛 DĂ©pannage + +### Le script ne dĂ©marre pas + +VĂ©rifiez que: +1. Les dĂ©pendances sont installĂ©es: `pip install -r requirements.txt` +2. ChromeDriver est disponible et compatible +3. Les fichiers de logs ne sont pas en lecture seule + +### Erreur "invalid session id" + +Si cette erreur se produit de nouveau: +1. Tuez le processus: `kill ` +2. Modifiez la date de reprise dans `resume_scraping.py` +3. Relancez le script + +### Fichiers CSV vides + +Les fichiers CSV ne seront pas Ă©crasĂ©s. Les nouvelles donnĂ©es seront ajoutĂ©es aux fichiers existants. + +## 📈 Performance + +### Temps estimĂ© + +Le script de reprise a les mĂȘmes performances que le scraper principal: +- **Jours sans courses**: 3-4 secondes/jour +- **Jours avec peu de courses**: 40-50 secondes/jour +- **Jours avec beaucoup de courses**: 100-150 secondes/jour + +### Exemple + +Pour 846 jours restants (de 2024-04-08 Ă  2026-08-01): +- Temps estimĂ©: 14-21 heures +- Estimation: Entre 06:00 et 13:00 le 3 janvier + +## 🔐 SĂ©curitĂ© + +### Aucune perte de donnĂ©es + +Le script de reprise est conçu pour **ne jamais perdre de donnĂ©es**: +- Ajoute aux fichiers existants +- Ne supprime rien +- Ne modifie pas les lignes existantes + +### Sauvegarde avant reprise + +Avant de lancer le script de reprise, vous pouvez faire une sauvegarde: + +```bash +cp data/courses_daily.csv data/courses_daily_backup.csv +cp data/results_daily.csv data/results_daily_backup.csv +``` + +## 📚 Documentation Connexe + +- [Nouveau Scraper](NOUVEAU_SCRAPER.md) - Documentation du scraper principal +- [README](../README.md) - Documentation gĂ©nĂ©rale du projet + +## đŸ€ Support + +En cas de problĂšme: +1. VĂ©rifiez les logs dans `resume_scraping.log` +2. VĂ©rifiez que le processus est en cours: `ps aux | grep resume_scraping.py` +3. Consultez la section DĂ©pannage de ce document