IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Parser une page html, quel outil ?


Sujet :

Linux

  1. #1
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut Parser une page html, quel outil ?
    bonjour.

    Je veux isoler des données dans une page html... la parser en somme.

    Voici un extrait de la page :
    </b></span></span><a href="http://support.microsoft.com/kb/922616/en-us" target="_blank">KB922616</a>
    Vulnerability in HTML Help could allow remote code execution<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=34ebe5d3-40c9-41dc-aaff-64608d3ac7b1&amp;DisplayLang=en" target="_blank">Download</a>
    700 KB (August 7, 2006)Switches: KB922616.exe /passive /norestart /quiet<span style="color:red"><span style="font-size:8pt;line-height:100%"><b>*** NEW ***</b></span></span>
    Je veux isoler les 2 urls ainsi que la section switches. Tout ça tient en une seule ligne.

    Mes possibilités sont sed, awk, perl et sûrement d'autres.
    Je les connais et les ai déjà utilisés avec succés mais je ne les maitrise pas.

    Réussir à maîtriser un seul de ces outils est long, et j'ai peur de m'embarquer dans une solution et de passer beaucoup de temps pour une solution qui ne serait pas la plus logique/simple.

    Merci d'avance pour vos conseils éclairés.

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Je m'oriente doucement vers la HTML::parser en perl.
    Va falloir apprendre le perl pas gagnée cette histoire.

  3. #3
    Membre habitué Avatar de keikoz
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 146
    Points : 173
    Points
    173
    Par défaut
    Je pense que ça dépend du contexte, mais effectivmeent perl fera parfaitement l'affaire. Ça s'apprend relativement vite, je trouve. La faq d'ici-même est très bien faite.

    Tu peux toujours te dire qu'apprendre perl ne sera pas du temps perdu puisqu'il te permettra de faire de très nombreuses autres choses

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $ lynx -dump minitest.html
     
       [1]KB922616 Vulnerability in HTML Help could allow remote code
       execution[2]Download 700 KB (August 7, 2006)Switches: KB922616.exe
       /passive /norestart /quiet*** NEW ***
     
    Références
     
       1. http://support.microsoft.com/kb/922616/en-us
       2. http://www.microsoft.com/downloads/details.aspx?FamilyID=34ebe5d3-40c9-41dc-aaff-64608d3ac7b1&DisplayLang=en
    à coups de sed, je vais pouvoir isoler les liens sans trop de problèmes...

    Par ailleurs j'ai un code perl qui me permet de ne récupérer que le texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat parse.pl
    #!/usr/bin/perl -w
     
    use strict;
    use HTML::Parser ();
     
    sub text_handler { # Ordinary text
    print @_;
    }
     
    my $p = HTML::Parser->new(api_version => 3);
    $p->handler( text => \&text_handler, "dtext");
    $p->parse_file(shift || "-") || die $!;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ ./parse.pl minitest.html
    KB922616
    Vulnerability in HTML Help could allow remote code executionDownload
    700 KB (August 7, 2006)Switches: KB922616.exe /passive /norestart /quiet*** NEW ***
    Le seul truc c'est qu'en perl, je récupère toute une ligne pas très exploitable... En même temps si je savais coder en perl ça arriverait pas

    ça sent l'usine à gaz mon histoire

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '<a href="[^"]*' ton.fichier | sed s/'<a href="'//g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o 'Switches: [^<]*' ton.fichier | sed s/'Switches: '//g
    Optimisation possible.

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Citation Envoyé par ripat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '<a href="[^"]*' ton.fichier | sed s/'<a href="'//g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o 'Switches: [^<]*' ton.fichier | sed s/'Switches: '//g
    Optimisation possible.

    Mille Mercis c'est trèès efficace !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parser une page HTML avec re.search()
    Par Mydriaze dans le forum Général Python
    Réponses: 9
    Dernier message: 07/10/2008, 14h30
  2. Parser une page HTML avec du PHP
    Par Richard_Rahl dans le forum Langage
    Réponses: 9
    Dernier message: 19/08/2008, 15h36
  3. Parser une page html ?
    Par SimoX1 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/12/2006, 19h10
  4. Parser une page Html pour récuperer valeur
    Par Andry dans le forum Delphi
    Réponses: 5
    Dernier message: 01/12/2006, 17h10
  5. parser une page HTML pour en retirer de l'info
    Par belakhdarbts10 dans le forum ASP
    Réponses: 1
    Dernier message: 29/10/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo