Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1200 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Extraire image lien avec Beautiful Soup

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire image lien avec Beautiful Soup

n°2447890
erwan83
Du Shift DEL tu te méfieras !
Posté le 05-06-2023 à 21:52:53  profilanswer
 

Bonjour
J'ai trouvé comment extraire le texte d'un lien  
exemple  
<a href="tuttut">TEXTE</a>
me renvoie "TEXTE"
 
Je voudrais extraire une image sur le même principe
exemple
<a href="tuttut"><img src="photo.jpg"></a>
devrait me renvoyer
"photo.jpg"
 
Seulement, ça ne renvoie rien...
Avez-vous la solution ?
 

Code :
  1. data = page.text
  2.                         soup = BeautifulSoup(data, features="html.parser" )
  3.                      
  4.                         for link_brut in soup.find_all('a'):
  5.                             link = link_brut.get('href')
  6.                             texte = link_brut.text


J'ai trouvé ce code que j'ai ajouté entre la 2eme et la 3eme lignes mais rien ne se passe

Code :
  1. data = page.text
  2.                         soup = BeautifulSoup(data, features="html.parser" )
  3.                         image_links = [x['data-img'] for x in soup.find_all('a', rel='popover')]
  4.                         for link in image_links:
  5.                             print(link)


---------------
http://www.ypikay.com
mood
Publicité
Posté le 05-06-2023 à 21:52:53  profilanswer
 

n°2448487
erwan83
Du Shift DEL tu te méfieras !
Posté le 12-06-2023 à 11:26:44  profilanswer
 

Je sais que ça ne se fait pas mais ....
Personne n'a un bout de code SVP ?


---------------
http://www.ypikay.com
n°2448494
mechkurt
Posté le 12-06-2023 à 12:09:00  profilanswer
 

J'ai pas forcement tout compris mais dans ton premier code tu utilises un parser pour récupérer toutes les balises <a /> et en extraire le lien href et le contenu textuel.
 
Par contre dans le 2eme (je ne connais pas BeautifulSoup mais on peut essayer de deviner), on dirait que tu prend toutes les balises ayant un attribut data-img (image_links = [x['data-img']) et qu'en suite tu boucles sur ces "noeuds" pour trouver des enfants <a /> ayant l'attribut rel='popover' (for x in soup.find_all('a', rel='popover')]).
Clairement, tout ça ne vas pas t'aider à trouver la valeur d'attribut "src" dans des <img />
 
Encore une fois plutôt que copier / coller des fragments de code essaye de comprendre la logique des sélecteurs et des boucles dans BeautifulSoup.
 
J’imagine que pour cibler des <img /> dans des <a /> tu dois pouvoir faire un truc du genre :

Code :
  1. data = page.text
  2. soup = BeautifulSoup(data, features="html.parser" )
  3. for link_brut in soup.find_all('a'):
  4.     for img_brut in link_brut.find_all('img'):
  5.         src= img_brut.get('src')


Message édité par mechkurt le 12-06-2023 à 12:33:57

---------------
D3
n°2448603
erwan83
Du Shift DEL tu te méfieras !
Posté le 13-06-2023 à 14:50:04  profilanswer
 

oui j'ai testé mais il ne me renvoie strictement rien d'où ma question !


---------------
http://www.ypikay.com
n°2448622
mechkurt
Posté le 13-06-2023 à 16:33:29  profilanswer
 

Je connais peu Python et pas du tout BeautifulSoup, probable que le retour d’itération de ta première boucle n'a pas de méthodes pour filtrer comme la 2eme ?
Tu affiche les erreurs et aucun message pertinent ne t’aiguille sur une solution ?
Et quid de faire des print a chaque tout de boucle pour voir ce qu'il en est ?

Code :
  1. import lxml
  2. import requests
  3. from bs4 import BeautifulSoup
  4. from selenium import webdriver
  5. def test():
  6.     url = "https://asheville.craigslist.org/search/fua"
  7.     driver = webdriver.Firefox()
  8.     driver.get(url)
  9.     html = driver.page_source.encode('utf-8')
  10.     soup = BeautifulSoup(html, "lxml" )
  11.     for post in soup.find_all('li', "result-row" ):
  12.         for post_content in post.find_all("a", "result-image gallery" ):
  13.             print(post_content['href'])
  14.             for pic in post_content.find_all("img" ):
  15.                 print(pic['src'])


https://stackoverflow.com/questions [...] lsoup?rq=3


---------------
D3
n°2449575
gilou
Modérateur
Modzilla
Posté le 24-06-2023 à 11:44:45  profilanswer
 

Ca semble assez clair, au vu de ce que tu as posté :

Code :
  1. data = page.text
  2. soup = BeautifulSoup(data, features="html.parser" )
  3. for image in soup.find_all('img'):
  4.      source = image.get('src')
  5.      texte = source.text


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Extraire image lien avec Beautiful Soup

 

Sujets relatifs
Pourquoi j'ai cette erreur lorsque je met une image dans un bouton ouComment charger une image ?
Image décorative qui pixelise avec mise a l'échelle de windowslien flash - excel en vba sans etre en réseau
Script bash/python extraire données bddGalerie d'image automatique
Découper une image en morceaux pour éviter la copie trop facileInsertion image en html depuis mon ordi
[Ada][Adacore] Problème d'édition de lien avec GPSresponsive scroll pas quand je glisse l'image
Plus de sujets relatifs à : Extraire image lien avec Beautiful Soup


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR