Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
705 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [all]Extraction de l'information

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[all]Extraction de l'information

n°1611293
ProjetGTR
Posté le 13-09-2007 à 11:28:44  profilanswer
 

Bonjour à tous,
Voila je commencerai pas dire que je suis débutante....
 
voila j'ai un logiciel qui me recupere des pages internets d'un site en particulier (donc toujorus au meme format) avec ce logiciel j'ai la possibilité de lancer un programme à chaque page découverte (à la condition que ce programme finit par un .EXE :sweat: ). Donc mon problème est que j'aimerai recuperer uniquement l'information textuelle de ces articles mais quel languages utiliser ? C, Batch(très limiter pour extraction de donnée)?,Bash(ca serait super facile à faire...), perl ? sachant que ce petit programme doit pouvoir etre à la fin convertir en .exe :'(
 
voila je tourne en bourrique si qqun à une idée, je vous en serai reconnaissante
 
ps : voici le format du fichier .html :
<td class="avistxt" width="290">On pourrait dire qu'on trouve ....... ....un magazin de mec...</td>
j'aimerais juste recuperer : On pourrait dire qu'on trouve ....... ....un magazin de mec...
 
merci d'avance à vous


Message édité par ProjetGTR le 13-09-2007 à 11:37:23
mood
Publicité
Posté le 13-09-2007 à 11:28:44  profilanswer
 

n°1611302
Joel F
Real men use unique_ptr
Posté le 13-09-2007 à 11:37:35  profilanswer
 

perl me parait pas mal.
sino en C++ ou enC doit y avoir des bibliothèques de parsing HTML qui ferait ça.
Mais bon, ca rete de la manip de etxte, donc je prefererais perl.

n°1611303
ProjetGTR
Posté le 13-09-2007 à 11:41:51  profilanswer
 

minc alors c'est bien sur PERL que j'en connais le moins :'(
est ce que le fichier.pl pourra être converti facilement en .exe ?
est ce que ca me force à avoir un interpreteur perl sur mon windows ?

Message cité 1 fois
Message édité par ProjetGTR le 13-09-2007 à 11:42:09
n°1611304
franceso
Posté le 13-09-2007 à 11:43:25  profilanswer
 

+1 pour perl
 
Après tu pourra facilement convertir tes programmes perl en exécutables indépendants à l'aide de PAR::Packer


---------------
TriScale innov
n°1611305
franceso
Posté le 13-09-2007 à 11:46:56  profilanswer
 

ProjetGTR a écrit :

minc alors c'est bien sur PERL que j'en connais le moins :'(

Ca s'apprend vite... (même si c'est un peu déroutant au début quand on est habitué à d'autres langages comme le C)

 
ProjetGTR a écrit :

est ce que le fichier.pl pourra être converti facilement en .exe ?

Cf mon post du dessus qui a croisé le tien.

 
ProjetGTR a écrit :

est ce que ca me force à avoir un interpreteur perl sur mon windows ?

Oui pour développer ton programme. Ensuite, une fois que tu as généré un binaire exécutable, tu peux le faire tourner sur n'importe quelle machine.
C'est un peu comme en C : tu as besoin du compilateur pour développer. Ensuite tu peux distribuer l'exécutable et l'exéctuer sans avoir besoin de compilateur.


Message édité par franceso le 13-09-2007 à 11:47:36

---------------
TriScale innov
n°1611332
ProjetGTR
Posté le 13-09-2007 à 12:54:43  profilanswer
 

Merci de vos réponses :) , j'ai suivi vos conseils et je me lance dans l'apprentissage de PERL... ce qui m'amene à un autre souci :)
 

Code :
  1. #!/usr/bin/perl
  2. use strict; use warnings;
  3. use HTML::Parser;
  4. my $page = "./essai.html";
  5. # création de mon parser
  6. my $parser = HTML::Parser->new();
  7. # définition des mes evenements
  8. $parser->handler( text  => \&text,  "dtext" );
  9. $parser->handler( start => \&start, "tagname,attr" );
  10. $parser->handler( end   => \&end,   "tagname" );
  11. $parser->parse($page);
  12. {
  13.     my $in_span_textegras;
  14.     my @data;
  15.    
  16.     sub start {
  17.         my ($tag, $attr) = @_;
  18.         $in_span_textegras++
  19.             if $tag eq 'td' and $attr->{class} eq 'avistxt';
  20.     }
  21.    
  22.     sub end {
  23.         my ($tag) = @_;
  24.         $in_span_textegras--
  25.             if $tag eq 'td' and $in_span_textegras;
  26.     }
  27.    
  28.     sub text {
  29.         my ($text) = @_;
  30.         push @data, $text
  31.           if $in_span_textegras;
  32.     }
  33.    
  34. }


voila le code que j'ai maintenant, j'ai utilisé le parsing du module HTML ::Parser et tente de recuperer uniquement mon txt mais apparement ce code ne marche pas :'( si vous voyez l'erreur n'hésiter pas :)


Message édité par ProjetGTR le 13-09-2007 à 12:55:12
n°1611365
Joel F
Real men use unique_ptr
Posté le 13-09-2007 à 13:55:51  profilanswer
 

si il ne marche pas, c'est surement que tu ne lui a pas donnr de jambes :o
 
Si par contre, il ne fonctionne pas, pourrais tu nous dire si il s'agit d'une erreur d'interpretation ou d'execution ?

n°1611374
ProjetGTR
Posté le 13-09-2007 à 14:06:34  profilanswer
 

Enfait ce programme ne retourne rien,
Je tappe dans ma console cmd (je suis sous windows) :

Code :
  1. Perl test3.pl


Il me rend absolument rien donc apparement aucune erreur :s


Message édité par ProjetGTR le 13-09-2007 à 14:07:09
n°1611376
franceso
Posté le 13-09-2007 à 14:08:33  profilanswer
 

commence par faire afficher des trucs à tes fonctions start, end, text pour voir ce qui se passe et isoler un peu plus le problème.


---------------
TriScale innov
n°1611627
ProjetGTR
Posté le 14-09-2007 à 11:43:46  profilanswer
 

Hum, après pas mal de test :s, j'arrive à extraire mon texte mais j'ai toujours plien d'erreurs lors de l'excution ... si quelqu'un à une idée, je pense que ca doit vraiment être rien :s
 
à chaque test, voila ce qui en sort :  
 

Citation :

Use of uninitialized value in string eq at test2.pl line 31.
Use of uninitialized value in string eq at test2.pl line 31.
Use of uninitialized value in string eq at test2.pl line 31.
etc..


 
voici le code (J'ai finalement opté pour un accés directe à internet) :
 

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use LWP::Simple;
  5. use HTML::Parser;
  6. use HTML::Form;
  7. my $page = get( "http://toluna.fr/gradignan_est_parfait-av-919318.html" );
  8. # création de mon parser
  9. my $parser = HTML::Parser->new();
  10. # définition des mes evenements
  11. $parser->handler( text => \&text, "text" );
  12. $parser->handler( start => \&start, "tagname,attr" );
  13. $parser->handler( end => \&end, "tagname" );
  14. $parser->parse($page);
  15. print &get_data();
  16. $parser->eof;
  17. {
  18.  my $in;
  19. my @data;
  20.    sub start {
  21.       my ($tag,$attr) = @_;
  22.       $in++ if ($tag eq 'td' and $attr->{class} eq 'avistxt');
  23.    }
  24.  sub end {
  25.       my ($tag) =  @_;
  26.       $in-- if ($tag eq 'td' and $in='1');
  27.    }
  28.    sub text {
  29.       my ($text) =  @_;
  30.       push @data, $text if ($in );
  31.    }
  32.    sub get_data {
  33.  #print "in : ".$in;
  34.       return @data;
  35.    }
  36. }
  37. exit;


Message édité par ProjetGTR le 14-09-2007 à 14:49:52
mood
Publicité
Posté le 14-09-2007 à 11:43:46  profilanswer
 

n°1612204
ProjetGTR
Posté le 17-09-2007 à 09:07:00  profilanswer
 

ah ! biensur, C'est parce que tous tes td n'ont pas une classe !!!! :)
[edit]
erf c'etait de courte durée :p
maintenant j'ai mon fichier.pl qui marche impeccable, je me suis intéressé à la création de mon .exe
 
donc voila les manips que j'ai faite :

Code :
  1. ppm install PAR
  2. pp -o test2.exe test2.pl


 

Code :
  1. Compress::Zlib object version 1.22 does not match
  2. oader/0x8b1100/DynaLoader.pm line 225.
  3. Compilation failed in require at /loader/0x8b1100/
  4. BEGIN failed--compilation aborted at /loader/0x8b1
  5. Compilation failed in require at par.pl line 252.


 
:s une petite idée ?


Message édité par ProjetGTR le 17-09-2007 à 09:07:27
n°1612281
ProjetGTR
Posté le 17-09-2007 à 14:28:20  profilanswer
 

Apparement ma version de PAR est la 0.63, il me faut passer en 0.85...
Comment puisse je faire pour passer dans cette version alors que ppm me propose uniquement la vieille version ??


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [all]Extraction de l'information

 

Sujets relatifs
pb avec le"Cannot modify header information - RESOLU[résolu] extraction du nom de fichier d'une url
Api Windows - Information IEInformation VBA excel
Extraction de plusieurs requêtes SQL Server sous Word ou ExcelExtraction de données à partir d'un fichier
caractères spéciaux : extraction de base de données pour XMLExtraction d'url depuis un fichier
Fouille et extraction de textesDOM, extraction d'information dans un fichier XML
Plus de sujets relatifs à : [all]Extraction de l'information


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR