Spaces:
Sleeping
Sleeping
| import re | |
| from bs4 import BeautifulSoup | |
| import requests | |
| def nettoyer_string(mot): | |
| mot_non_special = re.sub(r'[^\w\sÀ-ÿ]' , '', mot) | |
| mot_ns_ne = re.sub(r'\s+', ' ', mot_non_special) | |
| mot_final = mot_ns_ne.strip() | |
| return mot_final | |
| def chercher_data(mot,titles = [], links = [] ): | |
| response = requests.get("https://data.gov.ma/data/fr/dataset", params={'q': mot}) | |
| if response.status_code != 200: | |
| return titles, links, response.url, 0 | |
| soup = BeautifulSoup(response.text, features="lxml") | |
| nb_text = soup.find('h1').text | |
| nombre_don = re.findall(r'\d+', nb_text) | |
| media = soup.find('ul', class_='dataset-list list-unstyled') | |
| if media: | |
| thm = media.find_all('li', class_ = 'dataset-item') | |
| for m in thm: | |
| link = m.find('a')['href'] | |
| links.append('https://data.gov.ma' + link) | |
| title = m.find('h2').text.strip() | |
| titles.append(title) | |
| else: | |
| return titles, links, response.url, 0 | |
| if not titles: | |
| return titles, links, response.url, 0 | |
| return titles, links ,response.url, nombre_don[0] | |
| def format_reponse(data): | |
| if len(data[0]) == 1: | |
| response = f"Ici le lien vers la donnée correspondant au mot recherché : {data[-2]}\n" | |
| response += f"Voici le seul résultat trouvé :\n" | |
| response += f"Titre : {data[0][0]}\n" | |
| response += f"Lien : {data[1][0]}\n" | |
| return response | |
| else: | |
| response = f"Ici le lien vers toutes les {data[-1]} données correspondant au mot recherché : {data[-2]}\n" | |
| response += f"Voici un exemple parmi les résultats trouvés :\n" | |
| response += f"Titre : {data[0][-1]}\n" | |
| response += f"Lien : {data[1][-1]}\n" | |
| return response | |