Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2013, à 15:04

Peuks

PERL Extraire du contenu d'une page web

Bonjour à tous .

Je cherche à écrire un script qui récupère les VDM du site viedemerde.fr , pour une raison qui m'est inconnu , le script ne fonctionne pas ...

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use HTML::TreeBuilder;
use HTML::FormatText;
#use Getopt::Long; #Est ce nécessaire ? 

#Page web en txt
my $URL=get("http://viedemerde.fr");
my $Format = HTML::FormatText->new;
my $TreeBuilder = HTML::TreeBuilder->new;
   $TreeBuilder->parse($URL);
my $Pageweb = $Format->format($TreeBuilder);

my $quote="";                           # Contient le contenu voulu ( la VDM )  
my @ligne;                            # Tableau contenant toute les lignes de la page (1 ligne par case)



# On récupère chaque ligne dans un tableau.
@ligne = split(/\n/,$Pageweb);

# On parcourt tout le tableau.
foreach $_ (@ligne)
{
    if(/Aujourd'hui.+VDM/) # Si la ligne contient Aujourd'hui suivi de 1 ou plusieurs caractères quelconque # suivi de VDM
    {
            $quote=$&;          # On prend uniquement la partie de la ligne qui correspond à l'expression régulière.
            print"\n$quote\n\n"; # Afficher $quote
	    last;
    }

}

Si quelqu'un peut m'expliquer ce que j'ai fait de faux , je suis preneur smile

Dernière modification par Peuks (Le 28/05/2013, à 16:56)

Hors ligne

#2 Le 28/05/2013, à 23:22

JoelS

Re : PERL Extraire du contenu d'une page web

Peuks a écrit :

Je cherche à écrire un script qui récupère les VDM du site viedemerde.fr , pour une raison qui m'est inconnu , le script ne fonctionne pas ...
...
Si quelqu'un peut m'expliquer ce que j'ai fait de faux , je suis preneur smile

En fait, je script me semble fonctionner, mais c'est le contenu de ce que tu récupères qui ne correspond pas à ce que tu cherches.

Hors ligne

#3 Le 29/05/2013, à 13:32

Peuks

Re : PERL Extraire du contenu d'une page web

Ma page qui est ressemble à cela avec la mise en table ressemble à cela

   FAQ
   ===



   Applications

     * VDM pour iPhone et iPad

     * VDM pour Android

     * VDM pour WP7

     * VDM pour BlackBerry

     * VDM pour Samsung Wave

     * Autres applications

     * Utiliser l'API VDM

   ===========================



   Top

     * Le top

     * Le flop

     * Classer par favoris

     * Classer par commentaires

   ============================



   VDM aléatoire
   =============



   Boutique

     * Livres VDM

     * Les t-shirts

     * Accessoires

   ================



   Soumettez votre VDM
   ===================



   Modérez les VDM
   ===============



     * 

     * Créer un compte VDM

     * Mot de passe oublié ?

   =========================


   Soumettez votre vie de merde

     * - Rappel du concept : Une anecdote qui commence par "Aujourd'hui"
       et qui se termine par "VDM".

     * - Attention : Une anecdote écrite en SMS ou comportant trop de
       fautes d'orthographe est toujours refusée.

     * - N'utilisez pas cet espace pour des discussions, de la publicité
       ou pour tout autre texte n'étant pas une VDM.

   Votre pseudo : Catégorie : Sexe : Être prévenu par e-mail ? [IMAGE][IMAGE]


   La VDM people : "Hué par un stade entier"
   -----------------------------------------

   Toutes les VDM people

   Aujourd'hui, invité à Rome pour y interpréter mes deux tubes avant la
   finale de la Coupe d'Italie opposant l'AS Roma à la Lazio de Rome, je
   n'ai pas reçu l'accueil escompté. Habitué à recevoir des… Lire la
   suite

   Aujourd'hui, jeu du Tabou en famille. Pour me faire deviner le mot
   "Chutes du Niagara", ma fille m'a dit l'indice "Lorsque j'ai mes
   règles". VDM

   #7620159
   17 commentaires

   je valide, c'est une VDM (1107) - tu l'as bien mérité (99)

   Le 29/05/2013 à 06:59 - santé - par Chutesduniagara

   Aujourd’hui, ma voiture est horriblement rayée. Il y a même des
   impacts sur la vitre côté conducteur. Le coupable est un paon qui
   s’est attaqué férocement à son reflet. Dois-je dire la vérité à mon
   assureur ? VDM

   #7620141
   21 commentaires

   je valide, c'est une VDM (1437) - tu l'as bien mérité (107)

   Le 29/05/2013 à 04:41 - animaux - par Quelpanache (homme)

   Aujourd'hui, je n'arrête pas de chanter "toute la pluie tombe sur
   moi", ce qui énerve beaucoup ma collègue. Lorsque je quitte le bureau,
   le soir, il pleut des cordes, je dois rentrer à pied chez moi et je
   n'ai pas de parapluie. Ma collègue s'est arrêtée en voiture pour me
   chanter la chanson. VDM

   #7619752
   34 commentaires

   je valide, c'est une VDM (2862) - tu l'as bien mérité (2189)

   Le 28/05/2013 à 22:15 - inclassable - par jwill

   Aujourd'hui, j'ai eu conduite de 11 h à 12 h avec le ventre
   gargouillant car l'heure du déjeuner approche. Ma monitrice me demande
   soudainement de m'arrêter devant une boulangerie. Elle a bien mangé
   TOUT son sandwich sous mon nez jusqu'à la fin de l'heure. VDM

   #7619446
   78 commentaires

   je valide, c'est une VDM (12071) - tu l'as bien mérité (1338)

   Le 28/05/2013 à 20:15 - inclassable - par fafifou

   Aujourd'hui, j'offre à ma petite amie une bague qui a coûté très cher.
   Elle est émue mais, après en avoir parlé avec ses parents, elle pense
   que je lui ai menti sur le prix. Elle m'a donc quitté. VDM

   #7619411
   168 commentaires

   je valide, c'est une VDM (14502) - tu l'as bien mérité (1866)

   Le 28/05/2013 à 19:59 - amour - par louaaane

   Aujourd'hui, je n'ai tellement pas l'habitude de recevoir des messages
   que lorsque j'ai entendu mon portable vibrer à 17 h, j'ai pris la
   pilule en pensant qu'il s'agissait de mon alarme de 20 h. VDM

   #7619322
   35 commentaires

   je valide, c'est une VDM (11937) - tu l'as bien mérité (1489)

   Le 28/05/2013 à 19:00 - inclassable - par Boobyc

   Aujourd'hui, cinéma avec l'homme que j'aime secrètement. D'un coup, un
   rot sort de ma bouche. J'ai dû faire semblant d'avoir le hoquet
   pendant toute la fin du film. VDM

   #7619277
   33 commentaires

   je valide, c'est une VDM (11412) - tu l'as bien mérité (2181)

   Le 28/05/2013 à 18:30 - amour - par Caro1

   Aujourd'hui, alors que ma mère ne sait pas encore que je fume, ma
   nièce de trois ans lui a sorti : "Je veux une bougie qui fait de la
   fumée comme celle de Tata." VDM

   #7619152
   3 commentaires

   je valide, c'est une VDM (20067) - tu l'as bien mérité (9433)

   Le 28/05/2013 à 16:56 - enfants - par anonyme

   ↑ Commentaire de Ooopsxshit : Grillée

   Voir tous les commentaires →

   Aujourd'hui, concours. Je m'installe devant les deux membres du jury.
   L'une d'elles a organisé sa feuille avec une colonne + et une colonne
   -. Je viens à peine de m'asseoir et n'ai pas dit un mot qu'elle me
   sourit et marque quelque chose dans la colonne -. VDM

   #7619089
   173 commentaires

   je valide, c'est une VDM (29224) - tu l'as bien mérité (2955)

   Le 28/05/2013 à 15:33 - travail - par koalalechat

   ↑ Commentaire de Snowblack94 : Tu n'as peut etre pas dis "bonjour"
   après ça peut etre pour te déstabiliser aussi :-/

   Voir tous les commentaires →

   Aujourd'hui, je me suis endormi sur la plage. Prévoyant, je n'ai pas
   la marque des lunettes sur les yeux. Non, non, je l'ai sur le front.
   VDM

   #7618643
   115 commentaires

   je valide, c'est une VDM (35467) - tu l'as bien mérité (9269)

   Le 28/05/2013 à 01:50 - inclassable - par Anonyme (homme)

   ↑ Commentaire de Mouhahaa : Toi tu ne dois pas être en France ^^

   Voir tous les commentaires →

   Aujourd'hui, je travaille mes cours de polonais. Le chapitre sur la
   nature me fait soudain prendre conscience de l'importance d'éradiquer
   la pollution de ce monde. Simplement pour pouvoir éradiquer ce mot de
   la langue polonaise : "zanieczyszczenie". VDM

   #7618621
   181 commentaires

   je valide, c'est une VDM (33344) - tu l'as bien mérité (3774)

   Le 28/05/2013 à 00:57 - inclassable - par TakTak (femme)

   Aujourd'hui, alors que j'essayais sans succès de faire dire
   "crocodile" à ma petite cousine de deux ans, j'ai lâché un : "Oh et
   puis merde !" Devinez quel mot elle répète maintenant... VDM

   #7618609
   80 commentaires

   je valide, c'est une VDM (31293) - tu l'as bien mérité (8370)

   Le 28/05/2013 à 00:37 - enfants - par Erfy (femme)

   Aujourd'hui, voyant un homme louche au loin, je décide de changer de
   trottoir. Celui-ci décide d'en faire autant. Inquiète, je retraverse
   la route. Arrivé à ma hauteur, il me dit : "Tu as eu peur hein !" VDM

   #7618415
   97 commentaires

   je valide, c'est une VDM (41621) - tu l'as bien mérité (6482)

   Le 27/05/2013 à 22:50 - inclassable - par lefroussard

     * 1

     * 2

     * 3

     * 4

     * 5

     * 6

     * 7

     * 8

     * 9

     * 10

     * …

     * 1383

     * « Page précédente

     * Page suivante »

   

   La VDM illustrée de Sharina

   Présentation de l'artiste

   Toutes les VDM illustrées

   Catégories

     * 


       Amour

     * 


       Animaux

     * 


       Argent

     * 


       Enfants

     * 


       Travail

     * 


       Santé

     * 


       Sexe

     * 


       Inclassable

     * 


       VDM, la suite

     * 


       La VDM people

   Blog de l'équipe

     * La VDM illustrée de Sharina

     * Bonjour mes chatons ! Bienvenue pour cette nouvelle VDM illustrée
       ! J'ai eu du mal à rester éveillé pour écrire cet article, mais je
       suis là. Surtout que... C'EST LE…

   samedi 25 mai 2013

   Tout le blog

   [IMAGE]

   BD "best of"
   Attention, vous tenez entre vos mains un concentré de Vie de Merde,
   le pire du pire, et donc aussi le plus drôle. Il paraît que ça
   porte bonheur, en tous cas pas pour ceux qui en ont fait les frais.
   Commander

     * © 2008-2013. Créé par Maxime VALETTE, assisté de Guillaume
       PASSAGLIA, pour Beta&Cie.

     * Contactez-nous — Conditions d'utilisation.

     * Accéder à la version Déficients visuels

   Le site : Boutique - Amour - Animaux - Argent - Enfants - Travail -
   Santé - Sexe - Inclassable - Membres - Forum

   Flux RSS : [IMAGE]Suivre les VDM [IMAGE]Suivre le blog VDM [IMAGE]Suivre
   les commentaires VDM [IMAGE]Suivre les VDM illustrées

   À emporter : BlackBerry - Android - iPhone/iPod Touch - Bada - Version
   mobile

   À offrir : Livres VDM - T-shirts VDM - Accessoires VDM

   Liens : Cinéma - Programmes TV - Séries TV

   Ailleurs : English - Italiano - Español - Türk - Pусский - Svenskt -
   Indonesia

   Follow @viedemerde

   2946946 VDM envoyées depuis l'ouverture du site. Ça vous en bouche un
   coin, non ?

Alors qu'après la mise en tableau , la page ressemble à cela

   FAQ    ===       Applications       * VDM pour iPhone et iPad       * VDM pour Android       * VDM pour WP7       * VDM pour BlackBerry       * VDM pour Samsung Wave       * Autres applications       * Utiliser l'API VDM     ===========================       Top       * Le top       * Le flop       * Classer par favoris       * Classer par commentaires     ============================       VDM aléatoire    =============       Boutique       * Livres VDM       * Les t-shirts       * Accessoires     ================       Soumettez votre VDM    ===================       Modérez les VDM    ===============         *        * Créer un compte VDM       * Mot de passe oublié ?     =========================      Soumettez votre vie de merde       * - Rappel du concept : Une anecdote qui commence par "Aujourd'hui"        et qui se termine par "VDM".       * - Attention : Une anecdote écrite en SMS ou comportant trop de        fautes d'orthographe est toujours refusée.       * - N'utilisez pas cet espace pour des discussions, de la publicité        ou pour tout autre texte n'étant pas une VDM.     Votre pseudo : Catégorie : Sexe : Être prévenu par e-mail ? [IMAGE][IMAGE]      La VDM people : "Hué par un stade entier"    -----------------------------------------     Toutes les VDM people     Aujourd'hui, invité à Rome pour y interpréter mes deux tubes avant la    finale de la Coupe d'Italie opposant l'AS Roma à la Lazio de Rome, je    n'ai pas reçu l'accueil escompté. Habitué à recevoir des… Lire la    suite     Aujourd'hui, jeu du Tabou en famille. Pour me faire deviner le mot    "Chutes du Niagara", ma fille m'a dit l'indice "Lorsque j'ai mes    règles". VDM     #7620159    17 commentaires     je valide, c'est une VDM (975) - tu l'as bien mérité (89)     Le 29/05/2013 à 06:59 - santé - par Chutesduniagara     Aujourd’hui, ma voiture est horriblement rayée. Il y a même des    impacts sur la vitre côté conducteur. Le coupable est un paon qui    s’est attaqué férocement à son reflet. Dois-je dire la vérité à mon    assureur ? VDM     #7620141    18 commentaires     je valide, c'est une VDM (1304) - tu l'as bien mérité (101)     Le 29/05/2013 à 04:41 - animaux - par Quelpanache (homme)     Aujourd'hui, je n'arrête pas de chanter "toute la pluie tombe sur    moi", ce qui énerve beaucoup ma collègue. Lorsque je quitte le bureau,    le soir, il pleut des cordes, je dois rentrer à pied chez moi et je    n'ai pas de parapluie. Ma collègue s'est arrêtée en voiture pour me    chanter la chanson. VDM     #7619752    34 commentaires     je valide, c'est une VDM (2763) - tu l'as bien mérité (2121)     Le 28/05/2013 à 22:15 - inclassable - par jwill     Aujourd'hui, j'ai eu conduite de 11 h à 12 h avec le ventre    gargouillant car l'heure du déjeuner approche. Ma monitrice me demande    soudainement de m'arrêter devant une boulangerie. Elle a bien mangé    TOUT son sandwich sous mon nez jusqu'à la fin de l'heure. VDM     #7619446    78 commentaires     je valide, c'est une VDM (11987) - tu l'as bien mérité (1330)     Le 28/05/2013 à 20:15 - inclassable - par fafifou     Aujourd'hui, j'offre à ma petite amie une bague qui a coûté très cher.    Elle est émue mais, après en avoir parlé avec ses parents, elle pense    que je lui ai menti sur le prix. Elle m'a donc quitté. VDM     #7619411    167 commentaires     je valide, c'est une VDM (14387) - tu l'as bien mérité (1856)     Le 28/05/2013 à 19:59 - amour - par louaaane     Aujourd'hui, je n'ai tellement pas l'habitude de recevoir des messages    que lorsque j'ai entendu mon portable vibrer à 17 h, j'ai pris la    pilule en pensant qu'il s'agissait de mon alarme de 20 h. VDM     #7619322    35 commentaires     je valide, c'est une VDM (11848) - tu l'as bien mérité (1482)     Le 28/05/2013 à 19:00 - inclassable - par Boobyc     Aujourd'hui, cinéma avec l'homme que j'aime secrètement. D'un coup, un    rot sort de ma bouche. J'ai dû faire semblant d'avoir le hoquet    pendant toute la fin du film. VDM     #7619277    32 commentaires     je valide, c'est une VDM (11320) - tu l'as bien mérité (2172)     Le 28/05/2013 à 18:30 - amour - par Caro1     Aujourd'hui, alors que ma mère ne sait pas encore que je fume, ma    nièce de trois ans lui a sorti : "Je veux une bougie qui fait de la    fumée comme celle de Tata." VDM     #7619152    3 commentaires     je valide, c'est une VDM (20001) - tu l'as bien mérité (9410)     Le 28/05/2013 à 16:56 - enfants - par anonyme     ↑ Commentaire de Ooopsxshit : Grillée     Voir tous les commentaires →     Aujourd'hui, concours. Je m'installe devant les deux membres du jury.    L'une d'elles a organisé sa feuille avec une colonne + et une colonne    -. Je viens à peine de m'asseoir et n'ai pas dit un mot qu'elle me    sourit et marque quelque chose dans la colonne -. VDM     #7619089    173 commentaires     je valide, c'est une VDM (29164) - tu l'as bien mérité (2948)     Le 28/05/2013 à 15:33 - travail - par koalalechat     ↑ Commentaire de Snowblack94 : Tu n'as peut etre pas dis "bonjour"    après ça peut etre pour te déstabiliser aussi :-/     Voir tous les commentaires →     Aujourd'hui, je me suis endormi sur la plage. Prévoyant, je n'ai pas    la marque des lunettes sur les yeux. Non, non, je l'ai sur le front.    VDM     #7618643    115 commentaires     je valide, c'est une VDM (35446) - tu l'as bien mérité (9266)     Le 28/05/2013 à 01:50 - inclassable - par Anonyme (homme)     ↑ Commentaire de Mouhahaa : Toi tu ne dois pas être en France ^^     Voir tous les commentaires →     Aujourd'hui, je travaille mes cours de polonais. Le chapitre sur la    nature me fait soudain prendre conscience de l'importance d'éradiquer    la pollution de ce monde. Simplement pour pouvoir éradiquer ce mot de    la langue polonaise : "zanieczyszczenie". VDM     #7618621    181 commentaires     je valide, c'est une VDM (33318) - tu l'as bien mérité (3772)     Le 28/05/2013 à 00:57 - inclassable - par TakTak (femme)     Aujourd'hui, alors que j'essayais sans succès de faire dire    "crocodile" à ma petite cousine de deux ans, j'ai lâché un : "Oh et    puis merde !" Devinez quel mot elle répète maintenant... VDM     #7618609    80 commentaires     je valide, c'est une VDM (31275) - tu l'as bien mérité (8365)     Le 28/05/2013 à 00:37 - enfants - par Erfy (femme)     Aujourd'hui, voyant un homme louche au loin, je décide de changer de    trottoir. Celui-ci décide d'en faire autant. Inquiète, je retraverse    la route. Arrivé à ma hauteur, il me dit : "Tu as eu peur hein !" VDM     #7618415    97 commentaires     je valide, c'est une VDM (41592) - tu l'as bien mérité (6479)     Le 27/05/2013 à 22:50 - inclassable - par lefroussard       * 1       * 2       * 3       * 4       * 5       * 6       * 7       * 8       * 9       * 10       * …       * 1383       * « Page précédente       * Page suivante »          La VDM illustrée de Sharina     Présentation de l'artiste     Toutes les VDM illustrées     Catégories       *           Amour       *           Animaux       *           Argent       *           Enfants       *           Travail       *           Santé       *           Sexe       *           Inclassable       *           VDM, la suite       *           La VDM people     Blog de l'équipe       * La VDM illustrée de Sharina       * Bonjour mes chatons ! Bienvenue pour cette nouvelle VDM illustrée        ! J'ai eu du mal à rester éveillé pour écrire cet article, mais je        suis là. Surtout que... C'EST LE…     samedi 25 mai 2013     Tout le blog     [IMAGE]     BD "best of"    Attention, vous tenez entre vos mains un concentré de Vie de Merde,    le pire du pire, et donc aussi le plus drôle. Il paraît que ça    porte bonheur, en tous cas pas pour ceux qui en ont fait les frais.    Commander       * © 2008-2013. Créé par Maxime VALETTE, assisté de Guillaume        PASSAGLIA, pour Beta&Cie.       * Contactez-nous — Conditions d'utilisation.       * Accéder à la version Déficients visuels     Le site : Boutique - Amour - Animaux - Argent - Enfants - Travail -    Santé - Sexe - Inclassable - Membres - Forum     Flux RSS : [IMAGE]Suivre les VDM [IMAGE]Suivre le blog VDM [IMAGE]Suivre    les commentaires VDM [IMAGE]Suivre les VDM illustrées     À emporter : BlackBerry - Android - iPhone/iPod Touch - Bada - Version    mobile     À offrir : Livres VDM - T-shirts VDM - Accessoires VDM     Liens : Cinéma - Programmes TV - Séries TV     Ailleurs : English - Italiano - Español - Türk - Pусский - Svenskt -    Indonesia     Follow @viedemerde     2946946 VDM envoyées depuis l'ouverture du site. Ça vous en bouche un    coin, non ?

Du coup j'ai l'impression que c'est à cause de cela que je ne peux pas récupérer ce que je veux . Est ce du à la fonction split ?
capturedu20130529133325.png

Dernière modification par Peuks (Le 29/05/2013, à 13:41)

Hors ligne

#4 Le 29/05/2013, à 21:51

JoelS

Re : PERL Extraire du contenu d'une page web

Non, tout fait bien son boulot, c'est simplement que tu te trompes sur le résultat renvoyé par HTML::FormatText.

A priori, c'est bien un formatage texte d'une page HTML. Le contenu est déjà formaté. Si tu imprimes chacune des lignes lues dans la boucle foreach, tu verras que ce que tu penses être dans une seule cellule (par exemple

   Aujourd'hui, jeu du Tabou en famille. Pour me faire deviner le mot
   "Chutes du Niagara", ma fille m'a dit l'indice "Lorsque j'ai mes
   règles". VDM

) est en fait 3 lignes différentes. Donc ton expression régulière qui pense trouver une seule chaîne commençant par Aujourd'hui et finissant par VDM ne peut pas marcher puisqu'elle est comparée sur la première ligne (marche pas) sur la deuxième (marche pas) et sur la troisième (marche toujours pas).

A mon avis, si tu sait que les VDM sont dans des cellules d'un tableau, en Perl tu dois avoir des modules pour construire le DOM de la page, puis parcourir ce DOM et trouver les cellules, en extraire le contenu HTML ensuite tu peux le formater en texte sur une seule ligne et voir s'il est reconnu par ton expression.

Hors ligne

#5 Le 29/05/2013, à 22:37

Peuks

Re : PERL Extraire du contenu d'une page web

Si je comprends bien, en voulant bien faire, j'ai "mal" fait ( du moins j'ai pas utilisé la bonne méthode ) .

En utilisant ce code (J'ai simplifié pour avoir l'essentiel, peu importe le formatage dans ce cas là )

#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
use LWP::Simple;
my $url="http://www.viedemerde.fr/";  # Variable qui contient l'url de la page html à récuperer
my $quote="-1";
my $source="";                        # Variable qui contient la page correspondant à l'url
my @ligne;                            # Tableau contenant toute les lignes de la page (1 ligne par case)

$source = get($url);          # On récupère toute la page html
@ligne = split(/\n/,$source); # On récupère chaque ligne dans un tableau.

# On parcours tout le tableau.
foreach $_ (@ligne)
{
    if(/Aujourd'hui.+VDM/ && !/concept/ && !/Lire la suite/) # Si la ligne contient Aujourd'hui suivi de 1 ou plusieurs caractères quelconque 
                                                             # suivi de VDM et que ce n'est pas celle rappelant le concept
                                                             # ni celle qui n'est pas entierement sur une page (la VDM people)
    {
            $quote=$&;          # On prend uniquement la partie de la ligne qui correspond à l'expression régulière.
            print "$quote\n";
            last;
    }
}

J'ai comme résultat

Aujourd'hui, un psychothrapeute a install son cabinet dans l'immeuble mal isol o j'habite.</a><a href="/sante/7620494" class="fmllink"> Il est amateur de la thrapie par le cri primal.</a><a href="/sante/7620494" class="fmllink"> VDM</a></p><div class="date"><div class="left_part"><a href="/sante/7620494" id="article_7620494" name="/resume/article/7620494" class="jTip">#7620494</a><br /><span class="dyn-comments">77 commentaires</span></div><div class="right_part"><p><span class="dyn-vote-j" id="vote7620494"><a href="javascript:;" onclick="vote('7620494','21958','agree');">je valide, c'est une VDM

Ce qui veut dire en lançant ma boucle foreach sur une page html directement , le contenu VDM est sur une seule ligne ?
En formatant ma page html j'ai fait en sorte que ce qui était sur une ligne ne l'est plus ? Du coup je pas le résultat attendu ?
Je pensais bien utiliser une autre méthode avec d'autres modules notamment en récupérant le contenu par les balises ou part le css sauf que je débute pour l'instant smile

Dernière modification par Peuks (Le 29/05/2013, à 23:00)

Hors ligne

#6 Le 29/05/2013, à 22:42

LapiGNU

Re : PERL Extraire du contenu d'une page web

Salut, je suis probablement un peu hors sujet, mais pour info, il existe un paquet nommé html-xml-utils qui fait des merveilles, hoplà !


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#7 Le 30/05/2013, à 13:40

claudius01

Re : PERL Extraire du contenu d'une page web

Bonjour,

Il y aussi l'excellent wget qui permet de pomper une ou plusieurs pages web et de passer le résultat au puissant xpath; le tout pouvant être appelé depuis un script quelconque.


Cordialement, A+
--
Claudius

Hors ligne

#8 Le 30/05/2013, à 20:12

luc2

Re : PERL Extraire du contenu d'une page web

si tu veux le faire en perl, la premiere chose a faire, c'est d'utiliser le kaleidoscope hypnotique du sharingan pour analyser la page :

1) il y a une premiere VDM en haut de la page. elle se cache dans une balise <div class="post people">. pour simplifier, ignorons cette premiere VDM.

2) les autres VDM sont dans des balises <div class="post article"> :

<div class="post article">
  <p> ce qui t'interesse se trouve a l'interieur de cette balise </p>
  <div class="date"> cette balise ne t'interesse pas </div>
  <div class="more"> cette balise ne t'interesse pas </div>
</div>

conclusion : il faut trouver toutes les balises <div class="post article"> et recuperer le texte qu'il y a dans la premiere balise <p>.

en perl :

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;
use Encode;
use LWP;
use HTML::TreeBuilder;

my $ua = LWP::UserAgent->new;
$ua->agent( 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36' );
my $response = $ua->get( 'http://www.viedemerde.fr' );
my $content = $response->content;
$content = decode( 'utf-8', $content ); # la page est en utf-8, alors on decode l'utf-8

my $tree = HTML::TreeBuilder->new;
$tree->parse($content);

my @divs = $tree->look_down # on cherche les <div> qui ont class="post article"
(
  '_tag' => 'div',
  'class' => 'post article'
);

foreach my $div (@divs)
{
  my @ps = $div->find('p'); # on cherche les <p>
  my $p = shift @ps; # seul le premier <p> nous interesse
  printf "- \%s\n", $p->as_text;
}

Hors ligne