Scraper des données sur une page web en Python avec BeautifulSoup
Résolu
nik029
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
nik029 Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
nik029 Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
1. Lorsque j'utilise ce code Python ci-dessous :
Pourquoi le résultat obtenu est "None", et non la liste de tous les éléments des <div class="linkbox-item primary"></div> de la page ?
2. Par ailleurs, pourquoi ce code ci :
ne fonctionne pas et me renvoie à l'erreur :
En vous remerciant par avance :)
1. Lorsque j'utilise ce code Python ci-dessous :
>>> requete = requests.get("https://zestedesavoir.com/bibliotheque/") >>> page = requete.content >>> soup = BeautifulSoup(page) >>> div = soup.find("div", {"class": "linkbox-item primary"}) >>> print(div.string)
Pourquoi le résultat obtenu est "None", et non la liste de tous les éléments des <div class="linkbox-item primary"></div> de la page ?
2. Par ailleurs, pourquoi ce code ci :
>>> h1 = soup.find_all >>> liste_titre = [elt.string.strip() for elt in h1]
ne fonctionne pas et me renvoie à l'erreur :
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
liste_titre = [elt.string.strip() for elt in h1]
TypeError: 'method' object is not iterable
En vous remerciant par avance :)
Configuration: Macbook Pro Retina 13" mi-2014
A voir également:
- Scraper des données sur une page web en Python avec BeautifulSoup
- Comment supprimer une page sur word - Guide
- Web office - Guide
- Comment traduire une page web - Guide
- Imprimer tableau excel sur une page - Guide
- Capturer une page web complète - Guide
1 réponse
L'objet renvoyé contenu dans la variable "div" est un objet Tag de BeautifulSoup. Selon la documentation :
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#tag
il n'existe pas de champ "string" dans cet objet. Par contre, si tu fais
Concernant le deuxième point, il y a à mon avis une erreur. "find_all" est une fonction et non un attribut soit :
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#tag
il n'existe pas de champ "string" dans cet objet. Par contre, si tu fais
print(div)tu obtiens un résultat exploitable.
Concernant le deuxième point, il y a à mon avis une erreur. "find_all" est une fonction et non un attribut soit :
h1 = soup.find_all(…) # ne pas oublier de mettre les bons paramètres
je ne connais pas BeautifulSoup mais si affiche None, devrai générer une erreur et pas afficher None. Il y a une incohérence quelque part.