Bonjour le Forum,

Petite question sur la gestion des erreurs avec beautifulsoup et surtout avoir un code pas trop chargé
Voici l'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
        the_dict['full_name'] = soup.find("div",{"id":"123"}).findAll("span",{"class":"nom"})[0].text.strip()
        the_dict['function'] = soup.find("div",{"id":"123"}).findAll("span",{"class":"titre"})[0].text.strip()
        the_dict['email'] = soup.find("div",{"id":"123"}).findAll("p",{"class":"email"})[0].find("a").text.strip()
Le soucis est que si ca plante (le find renvoi None) sur une des lignes le code s'arête (Puisque None n'a pas de fonction .text)
Une solution est de mettre des try/except .... donc à toutes les lignes : c'est un peu crade
Autre solution, coller à la fin de chaque ligne un if soup.find(....) else ''
Ou encore découper la ligne en faisant le .text.strip() uniquement si la valeur n'est pas None

Je trouve ces 3 solutions un peu "moches", on rajoute beaucoup de ligne, ca nuit à la lisibilité du code.
Existe t'il une solution plus propre et plus lisible ?

Merci pour votre aide

Thais