Files
ffa-calendar/docs/SCRAPER_REPRISE.md
Muyue cbe10fe525 📚 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
2026-01-02 15:52:09 +01:00

5.1 KiB

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

python scripts/resume_scraping.py

Lancer en arrière-plan

nohup python scripts/resume_scraping.py > resume_scraping.log 2>&1 &

Surveiller la progression

# 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:

# 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:

# 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:

cp data/courses_daily.csv data/courses_daily_backup.csv
cp data/results_daily.csv data/results_daily_backup.csv

📚 Documentation Connexe

🤝 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