Files
ffa-calendar/scripts/monitor_scraping.py
Muyue a5406a4e89 Initial commit: Reorganiser le projet FFA Calendar Scraper
- Créer une arborescence propre (src/, scripts/, config/, data/, docs/, tests/)
- Déplacer les modules Python dans src/
- Déplacer les scripts autonomes dans scripts/
- Nettoyer les fichiers temporaires et __pycache__
- Mettre à jour le README.md avec documentation complète
- Mettre à jour les imports dans les scripts pour la nouvelle structure
- Configurer le .gitignore pour ignorer les données et logs
- Organiser les données dans data/ (courses, resultats, clubs, exports)

Structure du projet:
- src/: Modules principaux (ffa_scraper, ffa_analyzer)
- scripts/: Scripts CLI et utilitaires
- config/: Configuration (config.env)
- data/: Données générées
- docs/: Documentation
- tests/: Tests unitaires

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-01-01 18:05:14 +01:00

73 lines
2.9 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Script de surveillance du scraping FFA
"""
import time
import pandas as pd
from pathlib import Path
def monitor_scraping(data_dir="data_2024_2025"):
"""Surveiller le scraping et afficher les statistiques"""
results_file = Path(data_dir) / "resultats" / "results.csv"
courses_file = Path(data_dir) / "courses" / "courses_list.csv"
while True:
print("\n" + "="*60)
print(f"📊 Surveillance du scraping - {time.strftime('%H:%M:%S')}")
print("="*60)
# Statistiques des courses
if courses_file.exists():
courses_df = pd.read_csv(courses_file)
print(f"📅 Courses disponibles: {len(courses_df)}")
# Statistiques des résultats
if results_file.exists():
results_df = pd.read_csv(results_file)
print(f"🏃 Résultats récupérés: {len(results_df)}")
print(f"💾 Taille fichier: {results_file.stat().st_size / (1024*1024):.2f} Mo")
# Recherche Augustin ROUX
augustin_mask = (
results_df['nom'].str.contains('ROUX', case=False, na=False) &
results_df['prenom'].str.contains('Augustin', case=False, na=False)
)
augustin_results = results_df[augustin_mask]
print(f"\n🎯 Recherche: Augustin ROUX")
print(f" Résultats trouvés: {len(augustin_results)}")
if len(augustin_results) > 0:
print(f"\n Détails des résultats:")
for idx, row in augustin_results.iterrows():
print(f" - Place {row['place']}: {row['resultat']} ({row['date'] if 'date' in row else 'N/A'})")
if 'club' in row and pd.notna(row['club']):
print(f" Club: {row['club']}")
# Top 5 clubs par nombre de résultats
print(f"\n🏟️ Top 5 clubs par nombre de résultats:")
top_clubs = results_df['club'].value_counts().head(5)
for club, count in top_clubs.items():
print(f" - {club}: {count} résultats")
# Recherche clubs Charente-Maritime (17)
print(f"\n📍 Clubs Charente-Maritime (17):")
dept17_mask = results_df['club'].str.contains(r'[\( ]17[\) ]', na=False)
dept17_results = results_df[dept17_mask]
dept17_clubs = dept17_results['club'].unique() if len(dept17_results) > 0 else []
if len(dept17_clubs) > 0:
for club in dept17_clubs[:10]:
count = len(results_df[results_df['club'] == club])
print(f" - {club}: {count} résultats")
else:
print(f" Aucun résultat trouvé pour le département 17")
print("\n⏳ Prochaine vérification dans 60 secondes...")
time.sleep(60)
if __name__ == "__main__":
monitor_scraping()