📚 Docs: Add resume script documentation

- New SCRAPER_REPRISE.md: Complete documentation for resume script
  * Explains the problem: Chrome crashes and 'invalid session id' errors
  * Describes the solution: Resume scraping from specific date
  * Detailed usage instructions with examples
  * Configuration guide for custom dates
  * Performance estimates and troubleshooting
  * Security guarantees (no data loss)
  * Connection to other documentation files

- Covers:
  * How to launch and monitor the resume script
  * How to modify resume and end dates
  * Behavior (appends to existing CSV files)
  * Performance estimates
  * Troubleshooting common issues
  * Backup recommendations
This commit is contained in:
Muyue
2026-01-02 15:52:09 +01:00
parent 55e6fa5292
commit cbe10fe525

178
docs/SCRAPER_REPRISE.md Normal file
View File

@@ -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 <PID>`
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