IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

<img> attributs ALT, SRC inaccéssibles


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut <img> attributs ALT, SRC inaccéssibles
    Bonjour,

    J'ai un soucis lors du scrap de certaines (car d'autres le sont correctement) balises <img>
    quand j'inspecte le code de la page, j'ai dans l'inspecteur (f12) :
    Nom : Capture.PNG
Affichages : 119
Taille : 20,0 Ko

    Mais quand je vais les chercher dans le code via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    authors = elt.querySelectorAll('img');
    authors.forEach(function(img){	
          // TODO TODO TODO
          console.log(img);
          console.log("brevets src : " + img.getAttribute('src'));
          console.log("brevets alt : " + img.getAttribute('alt'));
    }); // foreach
    j'obtiens dans la console :
    Nom : Capture2.PNG
Affichages : 108
Taille : 29,4 Ko

    Comment est ce même possible ?
    on voit bien le alt mais sans la valeur afféctée ???
    on a même pas le src !?

    Ce n'est pourtant pas la première fois que je vais chercher des images pour les afficher via du scrap, je ne comprends pas ce qui cloche ici ?

    D'avance merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    L’inspecteur de la console reflète l’état actuel du DOM, au moment où tu regardes. Les systèmes de lazy load (chargement paresseux) sont courants et fonctionnent à peu près tous pareil : l’attribut src de l’image est rempli seulement lorsque la page a fini de charger, voire même plus tard.

    Donc je pense que ton script de scrap est exécuté trop tôt, et ne « voit » pas les attributs src.
    Pour régler ce problème, tu peux :
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- avec juste un fragment de code et des copies d'écran, on ne peut rien tester.
    Donc, rien dire de plus.

    2- ATTENTION avec l'Inspecteur (F12)
    Le code affiché (dans l'inspecteur) n'est pas forcément le code réel de la "source".

    un exemple simple (<div> dans un <p>) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>p1<div>div</div>p2</p>
    L'Inspecteur va afficher :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p>p1</p>
    <div>div</div>
    p2
    <p></p>
    Ou encore (erreur d'imbrication de balises) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>p1<div>div</p></div>
    donnera :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p>p1</p>
    <div>
      div
      <p></p>
    </div>

    Le navigateur "corrige" certaines "erreurs".

    Par conséquent, tes copies d'écran ne reflètent pas forcément la réalité du code.
    Ni, comme dit Watilin, ce que ton script JS "voit" au moment où il est exécuté.
    Dernière modification par Invité ; 07/08/2019 à 15h06.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut
    Bonjour,
    Je ne vois pas comment faire autrement s'il y a des scripts de lazy loading entre autre :s

    sinon,
    @watilin, j'ai rajouté pour test, un sleep(2000) entre le moment ou le scraper clique pour dérouler le volet et le moment ou je vais chercher les images et le resultat est le même :s

    Je vois même l'image s'afficher dans le navigateur 1sec avant que le log ne s'affiche...

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Il fonctionne comment ton scraper ? Est-ce une extension de navigateur ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. modifier les attributs alt des balises img
    Par fredericbdr dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2010, 14h11
  2. Appliquer un CSS au attribut "alt" de la balise <img>
    Par sajedose dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/09/2009, 13h42
  3. Attribut alt d'une image dans css possible? et bien non...
    Par philippe123 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/04/2008, 14h03
  4. [RegEx] Tout récupérer sauf les attributs alt= et title=
    Par juJuv51 dans le forum Langage
    Réponses: 16
    Dernier message: 28/02/2007, 23h07
  5. Couleur texte attribut ALT ?
    Par iro2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/08/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo