- New scraper_jour_par_jour.py: Day-by-day scraping approach * Fixes 403/404 errors from previous method * Uses frmsaisonffa= (empty) parameter to avoid season filtering * Scrapes courses and results for each day from 01/01/2024 to 01/08/2026 * Progressive CSV saving with 'jour_recupere' column for traceability - New scraper_jour_par_jour_cli.py: CLI version with customizable dates * --start-date: Custom start date (default: 2024-01-01) * --end-date: Custom end date (default: 2026-08-01) * --no-results: Skip result fetching for faster scraping * --output-dir: Custom output directory - Documentation in docs/NOUVEAU_SCRAPER.md * Explains problems with old approach * Details new day-by-day methodology * Usage instructions and examples - Cleaned up: Removed temporary test scripts and debug files
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Scraper FFA - Version avec arguments en ligne de commande
|
|
|
|
Ce script scrape les données de la FFA jour par jour.
|
|
Les dates peuvent être spécifiées en ligne de commande.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
|
|
import argparse
|
|
from datetime import datetime
|
|
from scripts.scraper_jour_par_jour import FFAScraperDaily
|
|
|
|
def main():
|
|
"""Point d'entrée principal avec arguments"""
|
|
parser = argparse.ArgumentParser(description='Scraper FFA - Approche jour par jour')
|
|
parser.add_argument('--start-date', type=str, default='2024-01-01',
|
|
help='Date de début (format YYYY-MM-DD). Défaut: 2024-01-01')
|
|
parser.add_argument('--end-date', type=str, default='2026-08-01',
|
|
help='Date de fin (format YYYY-MM-DD). Défaut: 2026-08-01')
|
|
parser.add_argument('--output-dir', type=str, default='data',
|
|
help='Répertoire de sortie. Défaut: data')
|
|
parser.add_argument('--no-results', action='store_true',
|
|
help='Ne pas récupérer les résultats (uniquement les courses)')
|
|
|
|
args = parser.parse_args()
|
|
|
|
# Valider les dates
|
|
try:
|
|
datetime.strptime(args.start_date, '%Y-%m-%d')
|
|
datetime.strptime(args.end_date, '%Y-%m-%d')
|
|
except ValueError:
|
|
print("❌ Erreur: Les dates doivent être au format YYYY-MM-DD")
|
|
sys.exit(1)
|
|
|
|
print("=" * 60)
|
|
print("🔄 Scraper FFA - Approche jour par jour")
|
|
print("=" * 60)
|
|
print(f"Période: {args.start_date} au {args.end_date}")
|
|
print(f"Récupération des résultats: {'Non' if args.no_results else 'Oui'}")
|
|
print(f"Répertoire de sortie: {args.output_dir}")
|
|
print(f"Fichiers de sortie:")
|
|
print(f" - {args.output_dir}/courses_daily.csv")
|
|
print(f" - {args.output_dir}/results_daily.csv")
|
|
print("=" * 60)
|
|
|
|
scraper = FFAScraperDaily(output_dir=args.output_dir)
|
|
stats = scraper.run(args.start_date, args.end_date, fetch_results=not args.no_results)
|
|
|
|
print("\n" + "=" * 60)
|
|
print("✅ Scraping terminé!")
|
|
print("=" * 60)
|
|
print(f"Jours traités: {stats['total_days']}")
|
|
print(f"Courses récupérées: {stats['total_courses']}")
|
|
print(f"Résultats récupérés: {stats['total_results']}")
|
|
print("=" * 60)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|