[Python] Javascript-Ajax
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

[Python] Javascript-Ajax



  1. #1
    Loupsio

    [Python] Javascript-Ajax


    ------

    Bonjour,
    Après avoir cherché à récupérer avec python, une valeur sur une page html, je me suis rendu compte que le code faisait appel à du javascript
    Visiblement le tableau dont la valeur m'intéresse est rempli par du javascript, et le script mentionne "ajax" (je connaissais pas jusque la, mais visiblement c'est pour mettre a jour le contenu de la page sans rafraichir si j'ai bien compris (ce qui tombe bien car dans le tableau qui m'interesse la valeurs se met a jour toutes les 5 secondes)

    Je n'ai pas contre aucune idée de comment récupérer cette variable, le script mentionne une page "pw_ajax.js" et dans le script il y a une fonction "getParams() qui mentionne "xml.cgi" (je n'ai aucunes notions de cgi non plus)
    voici une fraction de ce que je retrouve dans le code grace à urllib de python:
    Code:
    <script src="pw_ajax.js" type="text/javascript"></script>
    <script type="text/javascript">
    
    [...] 
    
      function getVariables() {
      
        getParams('xml.cgi','D|'+startDigitals+'|'+endDigitals+'|I|'+startIntegers+'|'+endIntegers+'|A|'+startAnalogs+'|'+endAnalogs);;
    
      }
       
    [...]
    
    
    
     for ( i=startAnalogs; i<=endAnalogs; i++ ) {
          oldVar = document.getElementById("avar"+i).innerHTML;
          document.getElementById("avar"+i).innerHTML = !analogs[i] ? "-" : analogs[i];
    
    
        }
      </script>
    Voila 2 parties du code qui me semblent d'intéret dans la récupération de mes données, mais je ne sais pas quoi en faire

    il se trouve que la valeur qui m'interesse, dans le code html possède l'id "avar1" et la toute dernière ligne de ce que je viens de mentionner comprend "document.getElementById("avar"+i).innerHTML = !analogs[i] ? "-" : analogs[i];

    Je suppose donc qu'il faut que j'aille chercher avec python ce fameux "analogs[1]" mais je ne sais absolument pas comment faire
    je précise que je n'ai que de simples bases en html, que dalle en javascript,
    et pour python, je débute dans les interactions avec un site web

    des idées pour récupérer la valeur de cette variable javascript avec python?
    Merci

    -----

  2. #2
    invitea31a02dc

    Re : [Python] Javascript-Ajax

    Il y a quand même un truc important à savoir. Le python est coté serveur: il fourni simplement un "texte" à celui qui le lui demande. Dans votre cas, ça sera le résultat du read. Quand c'est un browser qui reçoit ce "texte", il va l'interpréter pour afficher ce qu'il signifie.
    Du coup côté python vous n'avez strictement aucune chance de récupérer le contenu du tableau, y compris la variable analogs.
    La seule chance de réussir à le récupérer, c'est que la variable analogs soit fournie par python au moment de son initialisation dans le javascript, et sa mise à jour toutes les 5 secondes.
    Ma question est donc : quelle est l'adresse serveur appelée toutes les 5 secondes ? Je ne parle pas de la méthode javascript, mais réellement l'url. Pour la voir, il suffit d'afficher l'onglet "network" lorsque vous faites bouton droite -> "inspecter la page".

  3. #3
    Loupsio

    Re : [Python] Javascript-Ajax

    Ah justement j'avais cherché si il y avait pas une autre adresse pour récupérer les données, mais je n'avais pas trouvé, effectivement dans l'onglet reseau je retombe sur un url du style : http://[monsite]/xml.cgi?N|...
    quand je modifie dans le barre d'adresse en rajoutant le nom xml.cgi... j'obtiens bien les données qui m'intéressent, mais sur cette meme page en faisant click-droit > examiner l'élément je n'ai que deux lignes mais les données elles meme n'apparaissent pas (ce qui parait cohérent, certes, mais ce qui ne m'avances pas dans la récupération de ces données puisque ducoup python ne pourra toujours pas les récupérer)

  4. #4
    Loupsio

    Re : [Python] Javascript-Ajax

    J'ai rien dit,
    ca n'apparait pas dans le "examiner l'élément", mais une fois chargé l'url menant directement a xml.cgi, avec python j'ai bien la page complete (avec les valeurs qui servent a remplir le tableau) lorsque j'utilise le le .read() merci beaucoup, a partir de la je devrais pouvoir me débrouiller

    Merci beaucoup

  5. A voir en vidéo sur Futura

Discussions similaires

  1. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 19h56
  2. en python le multi tache n'est pas possible alors pourquoi les threads existent sur python?
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 10/06/2015, 16h47
  3. Javascript : Intégrer une variable javascript dans un champ de formulaire html
    Par invitea1400dd5 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 03/08/2014, 12h15
  4. Checkbox Ajax + Php
    Par invitea1400dd5 dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 08/10/2013, 22h57
  5. Tableau ajax
    Par invite4f05df75 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 28/01/2013, 11h11