#1 Le 28/05/2013, à 14: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
Dernière modification par Peuks (Le 28/05/2013, à 15:56)
Hors ligne
#2 Le 28/05/2013, à 22:22
- JoelS
Re : PERL Extraire du contenu d'une page web
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
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, à 12: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 ?
Dernière modification par Peuks (Le 29/05/2013, à 12:41)
Hors ligne
#4 Le 29/05/2013, à 20: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, à 21: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
Dernière modification par Peuks (Le 29/05/2013, à 22:00)
Hors ligne
#6 Le 29/05/2013, à 21: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, à 12:40
#8 Le 30/05/2013, à 19: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