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>
This commit is contained in:
72
scripts/monitor_scraping.py
Executable file
72
scripts/monitor_scraping.py
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user