0
votes

Comment extraire la valeur HREF de l'étiquette reliée dans Python

...html...
<link rel="image_src" href="image.jpg" />
....more html....
How to extract the image url using BeautifulSoup in Python

7 commentaires

Soupe.Find ('Link') ['href'] ?


@Furas Non Il y a beaucoup de


Ensuite, utilisez wind_all () - pour l'élément dans Find_All ("lien"): Prin (article ['href']) `


@furas je voudrais que une URL spécifique


Ensuite, utilisez plus d'options dans Find_All - comme {'href': true, "rel ':" image_src'} . Ou si ce lien est dans une autre balise unique, trouvez d'abord cette balise et recherchez ultérieurement à l'intérieur de cette balise.


Il existe sur une ligne indépendante


Beautifulsoup ne se soucie pas si c'est dans la ligne Indenpende. Vous devez trouver une balise pour la limiter. Vous devez donc montrer plus de HTML en question car la question actuelle est incomplète. Vous ne demandez que comment obtenir l'URL d'image à partir de ce HTML et vous avez de nombreuses réponses.


4 Réponses :


0
votes

Essayez le sélecteur CSS ceci.

for item in soup.select('[rel="image_src"]'):
    print(item['href'])


4 commentaires

J'ai essayé le 2e one, erreur de type type: l'objet n'est pas syndicalable


@ johnrao07: le code doit fonctionner correctement si votre soupe contient la balise et l'attribut que vous avez affiché?


Oui, la solution @furas est venue le plus proche ici


J'utilise Beautifulsoup 4.7 qui supportent le sélecteur CSS.May la raison



1
votes

Essayez ceci:

links = soup.find_all("link", {"rel": True})
for link in links:
    print(link.attrs["href"])


0 commentaires

1
votes

si soupe est l'objet beauxoup , puis utilisez xxx

méfiez-vous qu'il n'ya peut-être pas de href attribut, et dans ce cas, lien ["href '] augmentera keillerror . C'est pourquoi j'ai utilisé link.get ('href') pour vérifier l'existence.

si vous souhaitez trouver lien s avec rel = "image_src" , utilisez xxx


0 commentaires

2
votes

Utilisez Rechercher () code> ou Find_All () CODE> Pour plus d'éléments

from bs4 import BeautifulSoup as BS

text = '''
    <link rel="image_src" />
    <link rel="image_src" href="image1.jpg" />
    <link rel="sound_src" href="hello.mp3" />
    <link rel="image_src" href="image2.jpg" />
'''

soup = BS(text, 'html.parser')

for item in soup.find_all('link', {'href': True, 'rel': "image_src"}):
    print(item['href'])


2 commentaires

D'accord, j'ai fait avec Trouver et j'ai la solution ici, avec l'image_url.attrs ['href'] combinant le vôtre et @wonka réponse


Mon code utilise également ['href'] - donc cela donne aussi l'URL :)