📚 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:
178
docs/SCRAPER_REPRISE.md
Normal file
178
docs/SCRAPER_REPRISE.md
Normal 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
|
||||||
Reference in New Issue
Block a user