Extraire données d'une page HTML

Je suis un peu perdu pour extraire des données d’une page HTML d’un équipement sur mon installation.

Le code HTML de l’équipement est le suivant :

<!DOCtype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<meta name="Generator" CONTENT="ChrisB">
<title>PV Webserver</title>
</head>
<body nof="(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))" bgcolor="#EAF7F7" text="#000000" link="#0033CC" vlink="#990099" alink="#FF0000" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
<table cellspacing="0" cellpadding="0" width="800" nof="ly">
<tr valign="top" align="left">
<td width="190" height="5"></td>
<td></td>
</tr>
<tr valign="top" align="left">
<td height="55"></td>
<td colspan="2" width="600">
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" size="+3">
PIKO 3.0
<br><font size="+1">
ouest (255)
</font>
</font>
<td colspan="1" width="50"><img alt="Logo" height="42" width="130" src="KSE.gif"></td>
</tr>
</table>
<table Border="0" width="100%">
<tr>
<td width="150"></td>
<td> <hr> </td>
</tr></table>
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<table Border="0" width="100%">
<tr>
<td width="150" height="55"></td>
<td>
<font size="+2"><U>page info
</U></font></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">1<sup>e</sup> entr?e analogique :</td>
<td><b>0.00V</b></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">2<sup>e</sup> entr?e analogique :</td>
<td><b>0.00V</b></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">3<sup>e</sup> entr?e analogique :</td>
<td><b>0.00V</b></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">4<sup>e</sup> entr?e analogique :</td>
<td><b>0.00V</b></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">?tat du modem :</td>
<td><b>modem non disponible</b>
</td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">derni?re connexion au portail :</td>
<td><b>il y a 92 minutes</b></td>
</tr><tr>
<td width="150"></td>
<td width="280" height="35" align="right">nombre d'impulsions S0 :</td>
<td><b>0 </b><font size="-2">/ 15 minutes</b></td>
</tr>
</table>
</font>
<hr><br>
<table align="left"><tr><td  width="160">&nbsp</td><td>
<font face="Arial,Helvetica,Geneva,Sans-serif">&nbsp&nbsp
&nbsp<a href="index.fhtml"> retour ? la page principale </a>
&nbsp
</font></td></tr></table>
</body>
</html>

Lorsque je fait la requête HTML dans le script la valeur de retour est toujours vide. La seule valeur que j’arrive à lire est le titre « head > title »

Voici la programmation du script :

Comment faire pour trouver la syntaxe de la requête pour extraire les données de la page ?

1 « J'aime »

Bonsoir, je viens de tester sans le tbody ça prend bien

body > font > table > tr:nth-child(2) > td:nth-child(3) > b

me donne bien la première tension. pourquoi tbody bloque lorsqu’on le met dans le script, je sais pas (enfin le fichier html est pas très bien formaté il passe pas au validateur w3)

La marche à suivre globale c’est d’utiliser F12 sur la page en question

  • rond bleu pour utiliser l’outil de sélection, on clique sur ce qu’on veut récupérer.
  • rond rouge, on fait un click droit > copy > copy selector

et après faut tatonner avec les éléments du DOM quand ça veut pas, on enlève 1 par 1 pour remonter et trouver où ça bloque, puis on remet les éléments 1 à 1

en espérant t’avoir guidé

PS: ça c’est avec chrome/brave, mais sur firefox c’est très similaire :wink:

1 « J'aime »

tu as des plug pour navigateur

jQuery Unique Selector

c’est pas parfait mais ça aide
source

Merci beaucoup en effet ca marche mieux sans cette balise. J’avais essayé différente écriture mais pas de supprimer des balises.

Oui en effet le code html n’est pas très propre mais c’est la seule solution qui s’offre a moi pour extraire la donnée car directement de l’appareil. La version de FW intègre pas d’API ou de réponse Json.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.