Disons que je raclageais une page Web, et je souhaite sélectionner une certaine image sur la page Web. Tout comme vous pouvez trouver des éléments basés sur leur nom de classe, je souhaite sélectionner une image par sa balise I.e. Je souhaite sélectionner l'image dont la balise src code>. Comment choisir une image où je connais déjà la balise code> src code>?
src code> est: p>
4 Réponses :
Vous pouvez rechercher par des attributs arbitraires; Cela devrait fonctionner:
soup.findAll("img", {"src" : "https://assets.bandsintown.com/images/pin.svg"})
Alors que la réponse de @ Blorgbeard montre l'approche BelleSoup CODE>, en utilisant sélénium Vous pouvez obtenir la même chose en utilisant l'un des éléments suivants Stratégies de localisation :
css_selector code>: p>
xpath code>: p>
Utiliser BeauXoupe, vous pouvez le faire de nombreuses façons. Vous pouvez utiliser un sélecteur CSS, vous pouvez également utiliser une expression régulière également.
import re
for item in soup.find_all('img',src=re.compile('https://assets.bandsintown.com/images/pin.svg')):
print(item['src'])
Je ne suis pas sûr de ce que le point d'utiliser une regex pour une correspondance exacte est. Ces . Code> sont censés être littéraux, mais la regex interprétera comme "tout caractère".
Regex inter vitre recherchera une chaîne complète.Cevera une autre option si d'autres futurs lecteurs doivent rechercher une valeur particulière par REGEX.
Oui, il est utile de savoir que vous pouvez utiliser regex de cette façon (je ne savais pas que moi-même), mais cela n'a pas vraiment de sens avec l'exemple donné. Quelque chose comme src = repile ('https: //.* \ .candsintown \ .com /.*/ pin \ .svg') code> pourrait être une meilleure illustration de ce que vous pouvez faire avec elle .
Vous avez dit une seule image de son SRC code>. Utilisez
select_one code>. Moins de travail et vous n'avez besoin que d'un sélecteur d'attributs.
soup.select_one('[src="https://assets.bandsintown.com/images/pin.svg"]')['src']