Pour répondre à ta question, les codes que tu as utilisés n’ont probablement pas fonctionné parce qu’ils cherchaient directement dans le HTML, alors que la plupart des sites affichent désormais leurs informations via JavaScript.
Ensuite, les sites que tu m’as envoyés ne semblent pas permettre d’accéder aux vols des compagnies au-delà de quelques jours. J’en ai donc choisi un autre qui le permet.
Je t’ai fait un code qui te permet de faire ce que tu demandes. Cependant, tu devras installer Playwright sur ton terminal. Si tu ne sais pas comment faire, demande à ChatGPT, c’est rapide.
N’hésite pas si tu as des questions !
Voici ce que cela devrait t’afficher (tu peux ajouter plus de dates et vols).
Vérification du vol AF 719 (18-03-2025)...
Départ: Diass, Senegal (DSS) - 11:30 PM
Arrivée: Paris, France (CDG) - 6:10 AM
Vérification du vol TP 437 (25-03-2025)...
Départ: Paris, France (ORY) - 5:40 PM
Arrivée: Lisbon, Portugal (LIS) - 7:10 PM
Et voici le code
from playwright.sync_api import sync_playwright
def convert_date(date_str):
"""Convertit DD-MM-YYYY en YYYYMMDD"""
return date_str[-4:] + date_str[3:5] + date_str[:2]
vols = {
"AF 719": "18-03-2025",
"TP 437": "25-03-2025"
}
def extraire_infos_vol(page):
def get_info(prefix):
try:
aeroport = page.locator(f"#txt_{prefix}aptlnk").inner_text()
except:
aeroport = "N/A"
try:
heure = page.locator(f"#tbl_{prefix} td:has-text('Scheduled Time:') + td").first.inner_text().split(',')[0]
except:
heure = "N/A"
return {'aeroport': aeroport, 'heure': heure}
return {
'depart': get_info('dep'),
'arrivee': get_info('arr')
}
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
for vol, date_str in vols.items():
compagnie, numero = vol.split()
date_formatee = convert_date(date_str)
url = f"https://www.flightview.com/TravelTools/FlightTrackerQueryResults.asp?qtype=sfi&sfw=%2FFV%2FFlightTracker%2FMain&whenArrDep=dep&namal={compagnie}&al={compagnie}&fn={numero}&whenDate={date_formatee}&input=Track+Flight"
try:
print(f"\nVérification du vol {vol} ({date_str})...")
page.goto("about:blank")
page.goto(url, wait_until="domcontentloaded")
page.wait_for_selector("#txt_depaptlnk, #txt_arraptlnk", timeout=5000)
infos = extraire_infos_vol(page)
print(f"Départ: {infos['depart']['aeroport']} - {infos['depart']['heure']}")
print(f"Arrivée: {infos['arrivee']['aeroport']} - {infos['arrivee']['heure']}")
except Exception as e:
print(f"Erreur avec {vol} : {str(e)}")
page.reload()
browser.close()
Cette version me parait être la plus adéquate pour ce que tu as demandé. J’ai également fait une seconde version qui te permet de vérifier chaque vol pour chaque date. Tu peux la retrouver dans les modifications ultérieures de ce message si elle t’intéresse.