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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Récupérer des infos d'un fichier html pour les mettre dans un fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer des infos d'un fichier html pour les mettre dans un fichier

n°1117191
jyp
>-<o>-<
Posté le 26-02-2009 à 16:48:51  profilanswer
 

J'aimerai récupérer à partir d'une liste de ref que j'aurai rentré dans un fichier texte. Avec ces ref, j'aimerai qu'il me mette la ref, désignation et prix dans un fichier texte avec une tabulation entre chaque éléments et d'avoir une ligne par article...
 
Je parts de ca :

<tr>
    <td width="8%" height="18">&nbsp;</td>
    <td width="11%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">CPUIN00141</font></td>
    <td width="64%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX</font></td>
    <td width="9%" style=" border-left: 1px solid; border-right: 1px solid;" bordercolor="#000000" height="18" align="Right" valign="middle"><font face="@Arial Unicode MS" color="#000080">999,99</font></td>
    <td width="8%" height="18">&nbsp;</td>
  </tr>


 
Et j'aimerai arriver à ca :

CPUIN0014 "une tab" INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX "une tab" 999,99


 
Car je connais que les bases de grep et ca le fait pas..... j'arrive juste à avoir la ref (que je rentre dans ma commande) mais je ne sais pas comment avoir les 2 autres éléments et les mettre bien en ordre...

mood
Publicité
Posté le 26-02-2009 à 16:48:51  profilanswer
 

n°1117196
wedgeant
Da penguin inside
Posté le 26-02-2009 à 17:00:22  profilanswer
 

perl [:delarue6]

Message cité 1 fois
Message édité par wedgeant le 26-02-2009 à 17:00:45

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1117197
M300A
Sehr hopfen, vielen IBU, wow!
Posté le 26-02-2009 à 17:00:36  profilanswer
 

http://simbot.wordpress.com/2006/0 [...] ng-python/
 
Ca semble être une bonne piste ça :)

n°1117198
M300A
Sehr hopfen, vielen IBU, wow!
Posté le 26-02-2009 à 17:00:51  profilanswer
 
n°1117200
wedgeant
Da penguin inside
Posté le 26-02-2009 à 17:01:16  profilanswer
 


ou perl [:ginie]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1117219
404 Not Fo​und
Hacker Vaillant
Posté le 26-02-2009 à 17:35:11  profilanswer
 

En Perl ça pique quand-même moins les yeux  :o  
 
http://www.perl.com/pub/a/2003/09/17/perlcookbook.html

n°1117254
jyp
&gt;-&lt;o&gt;-&lt;
Posté le 26-02-2009 à 19:34:33  profilanswer
 

perl, python rien à faire....
Avec le script "404 Not Found", j'avais un message d'erreur car il me manquait un "module" : HTML/TableContentParser
Après il se passe rien, j'ai tapé :  
perl test.perl Tcpu.htm
perl test2.perl

n°1117264
jyp
&gt;-&lt;o&gt;-&lt;
Posté le 26-02-2009 à 19:54:45  profilanswer
 

Il y a pas un truc simple du style si il trouve la ref, il prend la ligne et les 2 autres du dessous pour arriver à ça :

<td width="11%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">CPUIN00141</font></td><td width="64%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX</font></td><td width="9%" style=" border-left: 1px solid; border-right: 1px solid;" bordercolor="#000000" height="18" align="Right" valign="middle"><font face="@Arial Unicode MS" color="#000080">999,99</font></td>


Un fois là il y aurait plus qu'a supprimer le code (il est identique pour tout les produits) avant la ref et après le prix, et de remplacer le code entre la ref/la désignation et désignation/prix par une tabulation.
Avec Awk?


---------------
Jyp
n°1117283
404 Not Fo​und
Hacker Vaillant
Posté le 26-02-2009 à 20:48:32  profilanswer
 

man awk  [:mrbrelle]

n°1117315
jyp
&gt;-&lt;o&gt;-&lt;
Posté le 26-02-2009 à 22:42:23  profilanswer
 

Il est gros le man... ;)

mood
Publicité
Posté le 26-02-2009 à 22:42:23  profilanswer
 

n°1117319
sputnick
bip...bip...bip...bip...bi...b
Posté le 26-02-2009 à 22:58:55  profilanswer
 

Un bot ( perl@freenode ) avisé me souffle dans mon oreillette :

Citation :


<perlbot> Don't parse html with regular expressions! See HTML::Parser, and its subclasses: HTML::TokeParser, HTML::TokeParser::Simple,  
HTML::TreeBuilder, HTML::TableExtract, etc. See also http://htmlparsing.icenine.ca/.  If your response begins "that's overkill.  
i only want to..." you are wrong.

n°1117320
Taz
bisounours-codeur
Posté le 26-02-2009 à 23:05:16  profilanswer
 
n°1117332
sputnick
bip...bip...bip...bip...bi...b
Posté le 26-02-2009 à 23:40:50  profilanswer
 

Parce que des solutions à l'arrache on est des déglingos, on peux en sortir :
 

Code :
  1. $ cat<<EOF | awk -F'[<>]' '($5) {print $5}' | tr '\n' '\t'; echo
  2. >> <tr>
  3. >>     <td width="8%" height="18">&nbsp;</td>
  4. >>     <td width="11%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">CPUIN00141</font></td>
  5. >>     <td width="64%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX</font></td>
  6. >>     <td width="9%" style=" border-left: 1px solid; border-right: 1px solid;" bordercolor="#000000" height="18" align="Right" valign="middle"><font face="@Arial Unicode MS" color="#000080">999,99</font></td>
  7. >>     <td width="8%" height="18">&nbsp;</td>
  8. >>   </tr>
  9. >> EOF
  10. CPUIN00141      INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX       999,99


 
Mais c'est le mal...

n°1117366
wedgeant
Da penguin inside
Posté le 27-02-2009 à 08:05:42  profilanswer
 


[:mlc]
c'est quoi cette commande ?  [:canaille]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1117389
jyp
&gt;-&lt;o&gt;-&lt;
Posté le 27-02-2009 à 09:48:48  profilanswer
 

sputnick a écrit :

Parce que des solutions à l'arrache on est des déglingos, on peux en sortir :
 

Code :
  1. $ cat<<EOF | awk -F'[<>]' '($5) {print $5}' | tr '\n' '\t'; echo
  2. >> <tr>
  3. >>     <td width="8%" height="18">&nbsp;</td>
  4. >>     <td width="11%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">CPUIN00141</font></td>
  5. >>     <td width="64%" style=" border-left: 1px solid;" bordercolor="#000000" height="18" align="Left" valign="top"><font face="@Arial Unicode MS" color="#000080">INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX</font></td>
  6. >>     <td width="9%" style=" border-left: 1px solid; border-right: 1px solid;" bordercolor="#000000" height="18" align="Right" valign="middle"><font face="@Arial Unicode MS" color="#000080">999,99</font></td>
  7. >>     <td width="8%" height="18">&nbsp;</td>
  8. >>   </tr>
  9. >> EOF
  10. CPUIN00141      INTEL QUAD CORE Q9650 S775 12Mo 3 Ghz BOX       999,99


 
Mais c'est le mal...


merci pour ton code mais ca me renvoie ca : &nbsp; &nbsp;

n°1117433
sputnick
bip...bip...bip...bip...bi...b
Posté le 27-02-2009 à 13:39:43  profilanswer
 

jyp :
awk -F'[<>]' '($5) {print $5}' fichier.html | tr '\n' '\t'; echo


Message édité par sputnick le 27-02-2009 à 22:42:35
n°1117605
Taz
bisounours-codeur
Posté le 28-02-2009 à 09:23:00  profilanswer
 

wedgeant a écrit :


[:mlc]
c'est quoi cette commande ?  [:canaille]


un html2text qui restera confidentiel faut croire, y aura toujours des gens pour aimer pondre des awkeries


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Récupérer des infos d'un fichier html pour les mettre dans un fichier

 

Sujets relatifs
[Shell] Remplacer dans un fichier en ligne de commandePouvoir faire le traitement de mon .bat pr chaque fichier selectionne
Verrouiller le fichier .ICEauthorityremplacer des mots d'un fichier F1 par ceux d'un fichier F2
Script bash : récuperer des données dans un fichierCherche fichier PPD pour Epson SX 200
recupérer mon pseudo sur hardware.frPartage fichier linpus/xp wifi
VIM récupérer nom et chemin des sous-fenêtre et position du curseur 
Plus de sujets relatifs à : Récupérer des infos d'un fichier html pour les mettre dans un fichier


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