📚 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