0
votes

Utilisation de magnifiquesSoup pour rechercher l'élément par SRC Tag

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 src . Comment choisir une image où je connais déjà la balise src ?

I.e. Je souhaite sélectionner l'image dont la balise src est: xxx


0 commentaires

4 Réponses :


3
votes

Vous pouvez rechercher par des attributs arbitraires; Cela devrait fonctionner:

soup.findAll("img", {"src" : "https://assets.bandsintown.com/images/pin.svg"})


0 commentaires

1
votes

Alors que la réponse de @ Blorgbeard montre l'approche BelleSoup , 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 : XXX

  • xpath : XXX


0 commentaires

0
votes

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.

Sélecteur CSS STRAND> P>

import re
for item in soup.find_all('img',src=re.compile('https://assets.bandsintown.com/images/pin.svg')):
   print(item['src'])


3 commentaires

Je ne suis pas sûr de ce que le point d'utiliser une regex pour une correspondance exacte est. Ces . 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') pourrait être une meilleure illustration de ce que vous pouvez faire avec elle .



0
votes

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']


0 commentaires