Forums : Plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# récupérer l'objet DOM de gecko, sans lancer de browser

Envoyé par : mikemowgli

Date : 17/10/2006 09:15

Bonjour à tous.

Je cherche à récupérer l'objet DOM que forme Gecko après avoir analysé une page web avec son parser.

Sous Mozilla, il existe le DOM inspector. C'est une extension qui fournit l'arbre DOM d'une page. Cela me conviendrait s'il était possible d'obtenir simplement l'objet DOM sans lancer de browser et ainsi pouvoir mettre sur pied une solution qui ne nécessite pas d'interface graphique. L'objectif serait de fournir, par exemple, un millier d'url et de récupérer un millier de DOM object via le parser html (ou xml, ou tous les parseurs nécessaires) de gecko (typiquement sur une machine linux sans serveur X et tournant en permanence). Une solution en javascript par exemple ne me convient pas car: 1. elle est interactive et ne permet pas de travailler en batch 2. elle nécessite de lancer le browser donc requiert un environnement graphique. Je cherche à faire qqch dans le même genre qu'une dll, en fait.

Je ne sais pas s'il faut s'attarder sur la programmation XPCOM ou s'il faut attaquer direct le C++ (donc sans passer par les méthodes de programmation de xpcom). Je ne sais pas s'il faut recompiler tout mozilla (ou tout firefox) pour obtenir ce que je désire. Avez-vous des pistes?

Je crois que le parser html se trouve dans mozilla/htmlparser et le constructeur d'arbre DOM dans mozilla/content.

Tout élément de réponse (orienté windows ou linux) est susceptible de m'intéresser. Merci PS: peut être connaissez vous des endroits meilleurs pour poser cette question. Je l'ai en tous cas posée sur le newsgroup mozilla.dev.tech.dom et je n'ai pas eu de réponse.

# Re: récupérer l'objet DOM de gecko, sans lancer de browser

Envoyé par : Paul Rouget

Date : 17/10/2006 11:20

Regarde du coté de xpcshell (souvent fourni avec Firefox, ou généré lors d'une compile de Firefox).

# Re: récupérer l'objet DOM de gecko, sans lancer de browser

Envoyé par : Sebdesf

Date : 26/01/2007 12:07

public Main(String[] args) {       
  Display display = new Display();
  Shell shell = new Shell(display);      
  final MozillaBrowser browser = new MozillaBrowser(shell,SWT.BORDER);      
  browser.setUrl("http://www.google.com");        
  browser.addProgressListener(new ProgressListener() {            
     public void completed(ProgressEvent event) {            
        // On récupère le DOM (ok)
        nsIDOMDocument doc = browser.getDocument();
        nsIWebBrowser wb = browser.getWebBrowser();
        nsIDOMNodeList aNL = doc.getElementsByTagName("a");
        long aNumber = aNL.getLength();
        System.out.println("Number of \"a\" elements: " + aNumber +"");            
     }
});

De mon coté j'ai des soucis pour imprimer avec Mozilla mais il me semble que c'est plus un problème xpcom qu'un problème Mozilla j'ai posté dans le forum xpcom : http://xulfr.org/forums/read.php?5,7424

Sébastien

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.