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 :

Recuperer une valeur d'un site web


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Recuperer une valeur d'un site web
    Bonjour, je voudrais que quand je lance mon programme le nombre du haut soit initialisé au nombre surligné mais je ne trouve pas comment faire

    Voilà le script qui me permet d'avoir le nombre surligné qui provient du site populationmondiale.com
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <script src="http://www.populationmondiale.com/population/clockjs.php?aff=1&lang=fr&cpop=FFFFFF&size=14&cclock=C0C0C0" type="text/javascript" id="monsite"></script>

  2. #2
    Rédacteur



    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        const elemPop = Array.from(document.querySelectorAll('a[href="http://www.populationmondiale.com"]'))[1].textContent.slice(0, -10);
     
        console.log(`elemPop = ${ elemPop }`); // elemPop =  7 648 919 484
     
        // fin code du test
     
    }, {
    capture: false,
    passive: true,
    once: false
    });

  3. #3
    Futur Membre du Club
    Merci beaucoup pour ta réponse, je récupère bien le nombre ! Par contre j'ai une dernière question, comment faire pour que ce nombre soit mis dans une variable quand je démarre la page
    car quand je met : mavariable = elemPop;
    Cela me met :

  4. #4
    Membre régulier
    Elempop est déjà une variable , c'est une constante.
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  5. #5
    Futur Membre du Club
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        const elemPop = Array.from(document.querySelectorAll('a[href="http://www.populationmondiale.com"]'))[1].textContent.slice(0, -10);
     
        alert(`elemPop = ${ elemPop }`); // elemPop =  7 648 919 484
     
        populationActuelleFr = 0;
     
        const
            elemTimer = document.querySelector('#timer'),
            elemTimerFr = document.querySelector('#timerFr');
     
     
        function augmenterMonde() {
            elemTimer.textContent = elemPop;
            populationActuelleMondiale = elemPop;
            populationActuelleMondiale += 1;
        }
     
        function augmenterFr() {
            populationActuelleFr += 0.02;
            elemTimerFr.textContent = (new Intl.NumberFormat().format(Math.round(populationActuelleFr))); //new Intl.NumberFormat().format(lenombre) = séparateur de milliers
        }
     
        setInterval(augmenterMonde, 1000 / 2.7);
        setInterval(augmenterFr, 1000);
     
        // fin code du test
     
    }, {
        capture: false,
        passive: true,
        once: false
    });


    Quand je fais ce code le timer s'initialise bien à la valeur de elemPop mais ne s'incrémente pas du tout ^^

  6. #6
    Membre régulier
    Je m'y connais aps vraiment , mais sachant qu'une constante ne change pas , je ne suis pas sûr qu'elle puisse être incrémenté , après je dis peut etre nimp
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  7. #7
    Futur Membre du Club
    Même en mettant var à la place de const, ça ne change rien, je vais chercher ce que je peux faire du coup ^^

  8. #8
    Membre régulier
    Vérifie tes variables , grâce à :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    console.log();
    </script>


    et fait F12 sur la page et regarde dans la console.
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  9. #9
    Futur Membre du Club
    UPDATE : je pense que c'est parce que elemPop est considérée comme une chaine de caractères et non un nombre entier alors en essayant de convertir elemPop avec soit parseInt ou même parseFloat, il ne me prend que le 1er chiffre : le "7", le compteur marche mais à partir du nombre 7 et non du nombre "7 649 153 832", si quelqu'un a une solution :/ (avec Number(elemPop) il me renvoit NaN)
    Je remet mon code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        var elemPop = document.querySelectorAll('a[href="http://www.populationmondiale.com"]')[1].textContent.slice(0, -10);
     //   alert(elemPop);
       // alert(`elemPop = ${ elemPop }`); // elemPop =  7 648 919 484
        populationActuelleFr = 0;
        populationActuelleMondiale = parseFloat(elemPop);
     
        var
            elemTimer = document.querySelector('#timer'),
            elemTimerFr = document.querySelector('#timerFr');
     
     
        function augmenterMonde() {
     
            populationActuelleMondiale += 1;
            elemTimer.textContent = populationActuelleMondiale;
           // elemPop += 1 ;
        }
     
        function augmenterFr() {
            populationActuelleFr += 0.02;
            elemTimerFr.textContent = (new Intl.NumberFormat().format(Math.round(populationActuelleFr))); //new Intl.NumberFormat().format(lenombre) = séparateur de milliers
        }
     
        setInterval(augmenterMonde, 1000 / 2.7);
        setInterval(augmenterFr, 1000);
     
        // fin code du test
     
    }, {
        capture: false,
        passive: true,
        once: false
    });

    Avec ce code cela ne renvoit que le 7 du nombre "7 649 153 832".

  10. #10
    Modérateur

    Bonjour,
    je pense que c'est parce que elemPop est considérée comme une chaine de caractères
    oui, tu récupères une chaine de caractères qui comporte des espaces mais pas un nombre, il te faut donc
    • supprimer les espaces de cette chaine (il existe plusieurs méthodes pour le faire)
    • récupérer/convertir la valeur pour avoir un nombre (cela peut être le boulot de parseInt)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // récup. de la chaine comme fait par danielhagnoul mais sans le slice
    const elemPop = Array.from(document.querySelectorAll('a[href="http://www.populationmondiale.com"]'))[1].textContent;//.slice(0, -10);
    // suppression des espaces et let et non const ici
    let valeur = elemPop.split(" ").join("");
    // récup. sous forme d'un nombre
    valeur = parseInt( valeur, 10);

  11. #11
    Membre régulier
    Une chaine de caractères ne peut pas être incrémentée.
    Il faut implémenter une fonction qui parcourt la chaine et modifie chaque caractère en fonction de celui qui le précède.
    Bon courage !
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  12. #12
    Futur Membre du Club
    Merci beaucoup ça marche ! Merci à tous pour vos réponses