#!/usr/bin/env python3 """ Script de debug pour analyser la structure HTML de la page Viparis """ import requests from bs4 import BeautifulSoup import re def analyze_viparis_structure(): """Analyse la structure HTML de la page Viparis""" url = "https://www.viparis.com/actualites-evenements/evenements" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } try: print(f"🔍 Analyse de la structure HTML de: {url}") response = requests.get(url, headers=headers, timeout=30) response.raise_for_status() soup = BeautifulSoup(response.text, 'html.parser') # Chercher les éléments contenant des événements print("\n📋 Recherche d'éléments d'événements...") # Chercher des patterns communs pour les événements event_patterns = [ 'event', 'evenement', 'agenda', 'salon', 'exposition', 'congres' ] for pattern in event_patterns: elements = soup.find_all(string=re.compile(pattern, re.I)) if elements: print(f"✅ Trouvé '{pattern}': {len(elements)} éléments") for i, elem in enumerate(elements[:3]): # Afficher les 3 premiers print(f" {i+1}: {elem.strip()[:100]}...") # Chercher des divs avec des classes qui pourraient contenir des événements print("\n🔍 Recherche de divs avec classes d'événements...") div_classes = soup.find_all('div', class_=re.compile(r'event|evenement|agenda|salon|expo', re.I)) print(f"Divs avec classes d'événements: {len(div_classes)}") # Chercher des liens qui pourraient être des événements print("\n🔗 Recherche de liens d'événements...") event_links = soup.find_all('a', href=re.compile(r'event|evenement|salon|expo', re.I)) print(f"Liens d'événements: {len(event_links)}") # Chercher des images d'événements print("\n🖼️ Recherche d'images d'événements...") event_images = soup.find_all('img', src=re.compile(r'event|evenement|salon|expo', re.I)) print(f"Images d'événements: {len(event_images)}") # Chercher des éléments avec des dates print("\n📅 Recherche d'éléments avec des dates...") date_elements = soup.find_all(string=re.compile(r'\d{1,2}/\d{1,2}/\d{4}|\d{1,2}\s+\w+\s+\d{4}', re.I)) print(f"Éléments avec dates: {len(date_elements)}") for i, elem in enumerate(date_elements[:5]): print(f" {i+1}: {elem.strip()}") # Chercher des éléments avec des titres d'événements print("\n📝 Recherche de titres d'événements...") title_elements = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], string=re.compile(r'BattleKart|Virtual Room|PRODURABLE|RÉÉDUCA|SALON', re.I)) print(f"Titres d'événements: {len(title_elements)}") for i, elem in enumerate(title_elements[:5]): print(f" {i+1}: {elem.get_text().strip()}") # Sauvegarder le HTML pour analyse with open('viparis_debug.html', 'w', encoding='utf-8') as f: f.write(response.text) print(f"\n💾 HTML sauvegardé dans viparis_debug.html") except Exception as e: print(f"❌ Erreur: {e}") if __name__ == "__main__": analyze_viparis_structure()