Belle Soupe "ResultSet" objet n'a pas d'attribut 'texte'
from bs4 import BeautifulSoup
import urllib.request
import win_unicode_console
win_unicode_console.enable()
link = ('https://pietroalbini.io/')
req = urllib.request.Request(link, headers={'User-Agent': 'Mozilla/5.0'})
url = urllib.request.urlopen(req).read()
soup = BeautifulSoup(url, "html.parser")
body = soup.find_all('div', {"class":"wrapper"})
print(body.text)
Salut, j'ai un problème avec Belle Soupe, si j'exécute ce code sans ".texte" à la fin il me montre une liste de div mais si j'ajoute ".texte" à la fin venir l'erreur
Traceback (most recent call last):
Fichier "script.py", la ligne 15, dans
print(organisme.texte)
AttributeError: 'ResultSet" objet n'a pas d'attribut 'texte'
for div in body: print(div.text)
. find_all retourne une liste d'éléments qui beautifulsoup a trouvé correspondant à vos critères. Comme le message d'erreur indique que l'ensemble des objets n'a pas de texte de l'attribut, mais les éléments à l'intérieur de l'ensemble ( doit être trouvé ) des.- n'est-ce pas assez bon pour une réponse?
Vous devez vous connecter pour publier un commentaire.
find_all
retourne un objet ResultSet qui vous pouvez parcourir à l'aide d'unfor
boucle. Ce que vous pouvez faire est:ResultSet
objet (dit directement dans le message d'erreur), qui peut être une sous-classe deset
mais probablement pas unlist
(vous peut-être voulu direiterable
?)Si vous taperez:
vous verrez
body
est<class 'bs4.element.ResultSet'>
Cela signifie tous les éléments qui correspondent à la classe. Vous pouvez soit effectuer une itération sur eux:Ou si vous savez que vous n'avez div, vous pouvez utiliser
find
à la place:Devrait probablement avoir posté comme réponse.. donc comme indiqué dans les commentaires presque mot pour mot
Votre code doit être la suivante:
Ou certaines schéma d'affectation de noms pour votre préférence de celle-ci.
La
find_all
méthode renvoie une liste générée ( vaguement en utilisant le terme liste ici ) des éléments qui beautifulsoup a trouvé correspondant à vos critères après l'analyse de la source des pages web en html, soit de manière récursive ou non de manière récursive selon le mode de recherche.Que le message d'erreur indique que l'ensemble des objets n'a pas de texte de l'attribut, car il n'est pas un élément, mais plutôt une collection d'entre eux.
Cependant, les éléments à l'intérieur de l'ensemble ( doit être trouvé ) des.
Vous pouvez consulter la documentation ici