Comparaison html avec Perl

Fermé
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011 - 1 juil. 2011 à 17:49
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011 - 13 juil. 2011 à 17:23
Hi !

Je cherche de l'aide pour un projet, voila j'aimerai, en faisant un get sur un site (ou autre), comparer une chaine de caractère pour voir si on la trouve dans le code source d'une page html passée en paramètre.
Si quelqu'un pourrait m'aider, ou aurait fait un script dans le genre parce que je suis complétement bloqué :/

merci d'avance
A voir également:

8 réponses

Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
11 juil. 2011 à 10:28
Tu pourrais recupérer le contenu de ta page dans une var et utiliser une expression reguliere par dessus.

#!/usr/bin/perl

use strict;
use LWP::Simple;

my $html = get("https://forums.commentcamarche.net/forum/affich-22521812-comparaison-html-avec-perl") or die "erreur";

if( $html =~ /(utiliser .* dessus)/i) { print "$1\n"; }
else { print "pas present\n"; }
1
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 13/07/2011 à 17:19
Voilà un petit cours sur le regex en perl => ici

Sinon pour ce qui est du motif de ma regex : /(utiliser .* dessus)/i
Analyse
/                 séparateur debut  
(                 début parenthèse capturante  
'utiliser '      utiliser suivi d'un espace  
.*               0 à n caractère quelquonque (ici c'est 'une expression reguliere par')  
' dessus'      dessus précédé d'un espace  
)                 fin parenthèse capturante  
/                 séparateur fin  
i                 indique que 'lon ne tient pas compte de la casse 

En perl, les expressions régulières se font très simplement avec l'operateur ~ (voir cours)
Si tu as des problèmes sur la conception de ton motif n'hésite pas à demander
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 2/07/2011 à 09:47
... et tu disposes de quel langage?
Si c'est Perl, j'avoue mon manque de connaissance des bibliothèques CPAN.
Si c'st PHP ou Python, je peux t'aider.
En gros, essaye de trouver une biliothèque qui te charge une page (genre cURL)
et effectue-s'y une recherhe (regexp, ou si tu connais la structure de la page et si elle est bien formée, avec un parseur XML).

Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011
4 juil. 2011 à 10:14
c'est uniquement Perl =)

Je vois comment récupérer le code source d'une page html, le soucis c'est de chercher dans le code source , si elle contient ma variable :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011
6 juil. 2011 à 15:22
up :)
0
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011
11 juil. 2011 à 10:00
toujours personne :'( ?
0
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011
13 juil. 2011 à 16:48
merci super =)

pour faire une comparaison ça marche comment ?

si tu peux me détailler le fonctionnement en fait, je suis pas très calé niveau regex :/

encore merci pour ton aide =)
0
Monlog Messages postés 6 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 13 juillet 2011
Modifié par Monlog le 13/07/2011 à 17:30
merci beaucoup je vais explorer tout ça et puis je te redis si j'ai un soucis ^.^


si par exemple je veut faire une variable $chain je peux donc la mettre ici

f( $html =~ /($chain)/i) { print "$1\n"; }

??
0