J'essaie de récupérer quatre champs d'une page web en utilisant python mais le problème est que les données que je cherche ne sont pas dans un html structuré, donc je ne trouve pas de moyen de les récupérer individuellement.
J'ai essayé avec :
import re
import requests
from bs4 import BeautifulSoup
link = 'https://colegios.es/2012/cra-la-gaznata-san-bartolome-de-pinares/'
def get_content(link):
res = requests.get(link,headers={'User-Agent':'Mozilla/5.0'})
soup = BeautifulSoup(res.text,"lxml")
school_name = soup.select_one("h1 > a").get_text(strip=True)
school_address = soup.find("p",text=re.compile('Dirección:\s*([^"]*?)')).text
school_phone = soup.find("p",text=re.compile('Tel\.\s*(.*?)\s*')).text
print(school_name,school_address,school_phone)
if __name__ == '__main__':
get_content(link)
Ce que j'obtiens est un véritable gâchis :
CRA La Gaznata San Bartolomé de Pinares CRA La Gaznata Servicios: Jornada contínua, Educación Infantil y Primaria Público Dirección: del Pino, 2 5267 San Bartolomé de Pinares Ávila Tel. 920 270 070 Fax 920 270 070 05005981@educa.jcyl.es [google-map-v3 addmarkerlist=”del Pino, 2 5267 San Bartolomé de Pinares Ávila {}5-default.png”] CRA La Gaznata Servicios: Jornada contínua, Educación Infantil y Primaria Público Dirección: del Pino, 2 5267 San Bartolomé de Pinares Ávila Tel. 920 270 070 Fax 920 270 070 05005981@educa.jcyl.es [google-map-v3 addmarkerlist=”del Pino, 2 5267 San Bartolomé de Pinares Ávila {}5-default.png”]
Sortie que je souhaite saisir (la deuxième est la banlieue disponible dans le nom) :
CRA La Gaznata
San Bartolomé de Pinares
del Pino, 2 5267 San Bartolomé de Pinares Ávila
920 270 070
Comment puis-je obtenir les quatre champs de cette page web ?