Htmlparser

dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007 - 23 avril 2007 à 10:16
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007 - 26 avril 2007 à 11:20
Bonjour
je veux bien récuperer la balise 
dans un fichier HTML
donc voila j'ai fait un parser qui me recupere la balise div en lui precisant sa position(57).
      NodeList list = parser.parse (new TagNameFilter ("div"));
      Node node = list.elementAt(57);
Pourriez vous m'aider SVP à trouver une solution pour recuperer le div sans preciser sa position mais son id=zoom-keywords.
merci

12 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
23 avril 2007 à 16:10
Yop yop,

tu devrais faire un truc dans le genre je pense (mais j ai jamais essayé les TagNameFilter )

public IdTagNameFilter extends TagNameFilter{
private String id;
public IdTagNameFilter(String name,String id){
super(name);
this.id = id;
}

public boolean accept(Node node){
if(node instanceof Tag){
Tag tagTmp = (Tag) node;
String idTmp = tagTmp.getAttribute("id");
if(id.equals(idTmp)) return true;
else return false;
}
else return false;
}
}

bon j ai tappé ca direct dans le browser donc doit y avoir des fautes mais normalement apres ca devrait etre le 1er element de ta liste

++ Toinou
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
23 avril 2007 à 17:01
merci bcp pour votre reponse c'est une trés bonne idée.
mais le probléme mnt c'est que j'arrive pas a passer l'@ au parser de la page à parcourir.
 Parser parser = new Parser ("http://www...");
je ne sais pas c'est quoi le pb pour quoi il parse pas la page que je viens de lui envoyé en paramétre.
merci
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
23 avril 2007 à 18:07
Yop,

ben avant ca marchait bien non ?? Ou ton fichier html était en local ?
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
23 avril 2007 à 21:49
Oui avant ca marchait , mon adresse est une HTTP à une page.
en principe je dois la paser  en parametre pour le parser.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
24 avril 2007 à 11:37
voici le programme que j'ai fait.pourriez vous SVP m'aider à trouverune solution pour que le IdTagNameFilter prend en considération ses parametres.
apparement il est vide j'ai pas compri comment l'innitialiser.
merci pour votre aide

public class IdTagNameFilter  extends TagNameFilter
{
 private String id; 


 public static void main(String[] args){
  try{
   
 
 Parser parser = new Parser ("http://www.");   // il y a l'@ correspondant à la page

 System.out.println("da");
   // IdTagNameFilter tagfilter = new IdTagNameFilter("div","id");
  NodeList list = parser.parse (new IdTagNameFilter("div","id"));
    System.out.println(list.toHtml());  //ici l'affichage est une balise vide
 }catch(Exception e){}
 }
  public IdTagNameFilter(String name,String id){
       super(name);
       this.id = id;
    }


   public boolean accept(Node node){
       if(node instanceof Tag){
          Tag tagTmp = (Tag) node;
          String idTmp = tagTmp.getAttribute("id");
          if(id.equals(idTmp)) return true;
          else return false;          
       }
       else return false;   
     }




  }
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
25 avril 2007 à 00:51
Bonjour
j'aimerai svp et si c'est possible demander qlqs questions à super_toinou  celui qui m'a donné des solutions sur mon probléme.
en fait la fonction que vous m'avez envoyé "accept" j'ai ps compri c'est quoi exactement son interet et ou il faut l'appeler ?  
vraiment je suis bloquée par ce probléme voila ce que j'ai fait pour mon programme et ca marche ps

public class IdTagNameFilter  extends TagNameFilter
{
 private String id; 
 public static void main(String[] args){
  try{
   
 
 Parser parser = new Parser ("http://www.");   // il y a l'@ correspondant à la page

 System.out.println("da");
   // IdTagNameFilter tagfilter = new IdTagNameFilter("div","id");
  NodeList list = parser.parse (new IdTagNameFilter("div","id"));
    System.out.println(list.toHtml());  //ici l'affichage est une balise vide
 }catch(Exception e){}
 }
  public IdTagNameFilter(String name,String id){
       super(name);
       this.id = id;
    }

   public boolean accept(Node node){
       if(node instanceof Tag){
          Tag tagTmp = (Tag) node;
          String idTmp = tagTmp.getAttribute("id");
          if(id.equals(idTmp)) return true;
          else return false;          
       }
       else return false;   
     }

  }

Merci bcp pour votre aide vraiment j'en ai besoin.si qlq a une reponse n'hesitez pas.
cordialement
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
25 avril 2007 à 10:53
Yop yop,

j veux bien regarder ca mais tu peux donner l adresse exacte de ton fichier html histoire que j puisse tester chez moi ??
Sinon t es java 1.4 ou 1.5 ?

++ toinou
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
25 avril 2007 à 12:01
Bonjour
voila mon @ que je suis entrain de parser.
Parser parser = new Parser ("http://www.photo.rmn.fr/cf/htm/CPicZ.aspx?E=2C6NU0E95BQR");
Pour java je ne sais pas quelle verssion je suis entrain de travailler. mais l'editeur que j'utilise c'est l'eclipse.


merci bcp pour votre compréhension.
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
25 avril 2007 à 14:42
c est un quoi ton parser ??
un javax.swing.text.html.HTMLEditorKit.Parser
un javax.swing.text.html.parser.Parser
un org.xml.sax.Parser
....
++ Toinou
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
25 avril 2007 à 20:53
BONJOUR
j'uitilse un javax.swing.text.html.parser.Parser
et j'ai ajouter les 2 librairis .jar qui sont htmllexer.jar et htmlparser.jar
merci bien 
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
26 avril 2007 à 09:52
Alors la faut m expliquer, en java 1.4 et java 1.5 le contructeur d un javax.swing.text.html.parser.Parser ne prend pas de String en parametre mais une DTD !!!
Ca peut pas compiler normalement
0
dalila5555 Messages postés 16 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 4 juin 2007
26 avril 2007 à 11:20
Bonjour
 je vous ai pas bien compri mais ce que j'ai et que ca marchait
Parser parser = new Parser ("http://www.photo.rmn.fr/cf/htm/CDocZ.aspx?&E=2C6NU0CXI74W&DT=ALB&Pass=&Total=19&Pic=4");
NodeList list = parser.parse (new TagNameFilter ("div"));
mais reste le probléme c'est que ici le TagNameFilter("Div") prend seulement la balise Div comme parametre et moi je veux preciser le id de cette div.
donc ces 2lignes de commandes permettent de parser tous les div de cette page .
merci pour votre compréhension
0
Rejoignez-nous