[résolu] Parser une page HTML

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Olivier
Arias
Messages : 16
Inscription : 07 août 2003, 12:38

[résolu] Parser une page HTML

Message par Olivier »

Bonjour,

Je souhaitais récupérer des informations 'noyées' dans une page HTML.
Par exemple, sur la page j'ai un tableau:
<tr>
<td id="r12"> produit </td>
<td> ... <td/>
<td> prix <td/>
<tr/>

et je voudrais récupérer le nom du produit et le prix.
J'ai ai écrit un script (exécuté avec GreaseMonkey) qui marche nickel lorsque j'arrive sur la page en question.

var cellProduit = document.getElementById("r12") ;
var textProduit = cellProduit .textContent;

puis j'ai une boucle pour récupérer le prix

Mais mon but serait d'avoir le prix affiché sur la status-bar de firefox => via extension.
=> comment faire pour que je ne sois pas obligé de me rendre sur la page...
Est-il possible de modifier la propriété document pour qu'elle s'applique sur une URL donnée ?

N'y arrivant pas et ne trouvant pas de réponse, j'ai essayé une autre méthode inspirée de quelques exemples trouvés sur le net (je ne donne que quelques instructions ci-dessous):
http_request.open('GET', url + parameters, true);
var xmlobject = http_request.responseText;

=> je ne peux pas utiliser responseXML car le site ne le permet pas.
=> responseText renvoit toute la page HTML.
Je ne vois pas comment traiter ce bloc d'info (à part avec des substr, ...).

Quelqu'un a-t'il une idée sur la manière de s'y prendre ?

Merci d'avance

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Dernière modification par Olivier le 11 mai 2006, 23:04, modifié 1 fois.
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Des idées au pif pour ruser.

Créer sur la page une iframe cachée (style display: none), utiliser innerHTML pour le garnir du source HTML que tu as reçue, le DOM doit alors y être accessible.
Ou directement open, write, close, à la place de innerHTML.
Il est peut être possible (aucune idée, faut essayer) de créer l'iframe, et de ne pas l'insérer (ie ne pas utiliser appendChild), son DOM est peut être quand même accessible.

Sinon, créer un nouveau document, en mémoire, (document.implementation.createDocument), et se servir de range.createContextualFragment pour y insérer le source HTML reçu.

Pas simple...
Olivier
Arias
Messages : 16
Inscription : 07 août 2003, 12:38

Message par Olivier »

Pour info:
j'ai réussi à le faire en m'inspirant (très fortement du script BookBurro.
Actuellement, cela marche via le script.
Il me reste à adapter pour en faire une extension...



Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité