BeautifulSoup: comment sélectionner certaines tag
Je suis confus avec quelle belle soupe fonctionne, quand vous voulez crabe un enfant d'une balise.
Donc, j'ai le code HTML suivant
<div class="media item avatar profile">
<a href="http://..." class="media-link action-medialink">
<img class="media-item-img" src="http://...jpeg" alt="name" title="name" width="150" height="200">
</a>
</div>
Je tiens à saisir la src de la balise. Je suis en utilisant le code suivant:
soup = BeautifulSoup(file_)
for x in soup.find('div', attrs={'class':'media item avatar profile'}).findNext('img'):
print x
Cela permet d'imprimer l'ensemble de la balise img. Comment puis-je sélectionner uniquement la src ?
Merci.
OriginalL'auteur evi | 2013-04-10
Vous devez vous connecter pour publier un commentaire.
Je pense que vous voulez quelque chose comme:
OriginalL'auteur root
src
est un attribut de la balise. Une fois que vous avez la balise, accéder aux attributs comme vous le feriez clés de dictionnaire; vous seulement ont trouvé l'a
tag si vous avez besoin pour naviguer dans le contenuimg
tag:Votre code utilisé
findNext()
qui renvoie une tag objet; boucle de fil qui vous donne les enfants, de sortex
était leimg
objet. J'ai changé cela pour être un peu plus direct et plus clair.x
est maintenant lediv
, et nous accéder directement à la premièrea
et contenusimg
tag.Mis à jour; vous avez la
a
tag, pas laimg
tag.Vous n'avez pas à boucle que vous utilisez
find
pasfindAll
Ouais, compris et corrigé.
Je pense que vous avez encore une boucle de trop 😛
soup.find('div', attrs={'class':'media item avatar profile'})
retour d'unstr
OriginalL'auteur Martijn Pieters
findNext
retourne le premier élément qui correspond au critère donné et s'affiche après la balise dans le document. Notez que cela signifie que n'importe quelle balise, il renvoie n'est pas garanti d'être un enfant de la balise donnée (par exemple, un enfant de ladiv
balise.)Utilisation
findChildren
à se restreindre aux enfants de la balise:rendements
OriginalL'auteur unutbu