import json, os
communes = [
"Montpellier","Lodève","Pézenas","Sète","Béziers","Agde","Frontignan","Clermont-l'Hérault",
"Gignac","Aniane","Saint-André-de-Sangonis","Mauguio","Lattes","Castelnau-le-Lez","Pérols",
"Carnon","La Grande-Motte","Palavas-les-Flots","Villeneuve-lès-Maguelone","Saint-Jean-de-Védas",
"Juvignac","Grabels","Clapiers","Jacou","Le Crès","Vendargues","Baillargues","Castries","Montferrier-sur-Lez",
"Prades-le-Lez","Saint-Clément-de-Rivière","Lunel","Marsillargues","Aimargues","Le Grau-du-Roi","Aigues-Mortes",
"Vauvert","Sauvian","Valras-Plage","Cers","Portiragnes","Agde","Marseillan","Mèze","Balaruc-les-Bains",
"Balaruc-le-Vieux","Gigean","Vic-la-Gardiole","Bouzigues","Frontignan-la-Peyrade","Mauguio","Pignan","Saint-Aunès",
"Saint-Georges-d'Orques","Fabrègues","Pézenas","Magalas","Assignan","Le Soler","Saint-Thibéry","Villeneuve-les-Béziers",
# — continue cette liste pour dépasser 1000 —
]
os.makedirs("output_taxi_pages", exist_ok=True)
services = [
"Taxi privé",
"Taxi conventionné médical",
"Transferts gare",
"Transferts aéroport",
"Transport longue distance",
"Transport professionnel",
"Transport touristique",
"Transport médical sécurisé"
]
faq = [
{"@type":"Question","name":"Taxi disponible 24h/24 ?","acceptedAnswer":{"@type":"Answer","text":"Oui, disponible 24h/24 et 7j/7 pour rendez-vous, hospitalisations et trajets médicaux."}},
{"@type":"Question","name":"Comment réserver ?","acceptedAnswer":{"@type":"Answer","text":"Par téléphone : 07 66 67 69 65 ou sur hellotaxiherault.fr"}},
{"@type":"Question","name":"Zones couvertes ?","acceptedAnswer":{"@type":"Answer","text":"Montpellier, Lodève, Pézenas, Sète, Béziers, Agde, Frontignan, et plus de 1000 communes environnantes."}}
]
for ville in communes:
page_id = ville.lower().replace(" ","-").replace("é","e").replace("'","")
data = {
"@context":"https://schema.org",
"@graph":[
{
"@type":["TaxiService","LocalBusiness"],
"@id":f"https://hellotaxiherault.fr/taxi-{page_id}",
"name":f"Hellô Taxi {ville}",
"url":f"https://hellotaxiherault.fr/taxi-{page_id}",
"telephone":"+33766676965",
"description":f"Taxi privé et conventionné médical 24h/24 7j/7 à {ville} et environs.",
"address":{"@type":"PostalAddress","addressLocality":ville,"addressRegion":"Occitanie","postalCode":"34000","addressCountry":"FR"},
"geo":{"@type":"GeoCoordinates","latitude":"43.6108","longitude":"3.8767"},
"areaServed":[{"@type":"City","name":ville}],
"serviceType":services,
"hasOfferCatalog":{"@type":"OfferCatalog","name":f"Catalogue services {ville}","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":s}} for s in services]}
},
{"@type":"FAQPage","mainEntity":faq}
]
}
filename = f"output_taxi_pages/taxi_{page_id}.json"
with open(filename,"w",encoding="utf-8") as f:
json.dump(data,f,separators=(",",":"),ensure_ascii=False)
print(f"Pages générées : {len(communes)}")