Comment récupérer une partie d'une page web appelée par un "bouton"

a marqué ce sujet comme résolu.

Bonjour à vous. Je précise que je suis nouveau et non développeur encore moins web :) Cependant c’est un monde qui ne m’est pas inconnu, donc je sais que je dois pouvoir arriver à me débrouiller avec votre aide. j’ai besoin de récupérer des infos d’un site web qui supervise des équipements. Je veux récupérer les infos des équipements supervisés pour les mettre dans une page excel. une fois dans excel, j’ai un tas de macro et fonctions qui m’extraient ce dont j’ai besoin. Aujourd’hui je fais un copier / coller de ces données mais comme il y a plus de 100 équipements, cela me prend un certain temps. et je veux avoir les infos régulièrement. Bref

sur ma page web pour charger les infos, je dois cliquer sur un bouton qui, quand j’inspecte a cette forme : <a href="/webUI/portList.do?server=aaabbbcccccc&amp;view=Global%20blabla%2UU%2DD%20-%20xxxx%2yyyy%20-%20zzzzz%2tttt%2aaaaa%20-%20bbbbb%20ccc&amp;id=1234567">Ports</a>

J’ai bien regardé plusieurs tuto, mais comme vous pouvez voir, l’élément que j’appelle n’a pas de balise <Id>. donc, document.getElementById ne fonctionne pas (en tous cas, je n’y arrive pas)

j’ai essayé document.getElementsByClassName mais cela me retourne un "html collection" qui est vide (length: 0).

Pouvez-vous m’aider svp ?

Francis

Si ton lien n’a ni classe ni identifiant, il faut trouver une balise HTML parent qui en a. Par exemple, imaginons que tu aies :

<div id="foo">
  <div>
    <a href="">
  </div>
<div>

L’idée est de récupérer <div id="foo"> avec var div_foo = document.getElementById("foo") puis à partir de cette balise HTML, allez jusqu’au lien <a> avec par exemple previousSibling et nextSibling ou d’autres fonctions JS. Ensuite tu peux même vérifier que tu as bien le bon lien en regardant la valeur de href.

Je suis sur mobile donc je ne peux pas détailler plus mais je te laisse te débrouiller, tu trouveras facilement les informations dont tu as besoin sur Internet.

+0 -0

Bonjour Situphen. Merci de ton retour. En fait, je n’ai que 2 identifiant avant :

<div id="eye-table-colresizerproxy" class="eye-table-resizerproxy"></div>

et

<div id="yui-gen0" class="yui-module yui-tt eye-table-tooltip yui-overlay-hidden" style="z-index: 999; visibility: hidden; left: 173px; top: 257px;">

et quand je fais

var div_yui-gen0=document.getElementById("yui-gen0");

dans la console, cela me retourne : Uncaught SyntaxError: Unexpected token

Après comme la page a plusieurs frame, peut-être est-ce plus compliqué qu’il n’y parait.

OU utiliser JAVA pour récupérer ce contenu n’est peut être pas la bonne méthode ?

MErci !

+0 -0

div_yui-gen0 n’est pas un nom de variable valide, comme c’est le cas dans la plupart des langages. D’ailleurs c’est du Javascript, pas du Java.

Pour obtenir un élément en fonction de son emplacement hiérarchique, on peut aussi utiliser querySelector. Exemple :

<div id="yui-gen0">
  <a href="/webUI/portList.do?server=...">Ports</a>
</div>
var anchor = document.querySelector("#yui-gen0 a");
var url = anchor.href;

Merci. et je peux taper cela (java<div>....) dans la console ? si oui, il y a un soucis car il me retourne Uncaught SyntaxError: Unexpected token <

atchoubaka

Non tu ne peux pas. Comme l’a dit @Olybri, Java et Javascript sont deux langages de programmation très différents ! Je cite Wikipédia :

JavaScript est décrit comme un complément à Java dans un communiqué de presse commun de Netscape et Sun Microsystems, daté du 4 décembre 1995. Cette initiative a contribué à créer auprès du public une certaine confusion entre les deux langages, proches syntaxiquement mais pas du tout dans leurs concepts fondamentaux, et qui perdure encore de nos jours.

+0 -0

Merci. et je peux taper cela (java<div>....) dans la console ? si oui, il y a un soucis car il me retourne Uncaught SyntaxError: Unexpected token <

atchoubaka

Et le code JavaScript qu’il te propose est

var anchor = document.querySelector("#yui-gen0 a");
var url = anchor.href;

Le code HTML

<div id="yui-gen0">
  <a href="/webUI/portList.do?server=...">Ports</a>
</div>

est un exemple de cas de figure.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte