background preloader

Perl

Facebook Twitter

Mod_perl 1.0 User Guide. Les meilleurs tutoriels et articles Perl. The CPAN Search Site. Construire des robots pour le web. Article publié dans Linux Magazine 75, septembre 2005.

Construire des robots pour le web

Sur IRC, il est assez mal vu de coller sur le canal de larges extraits de code : on inonde le canal pour rien (ce qui est mal en soi), et pour peu que la discussion soit animée, le code va défiler rapidement rendant sa lecture impossible par d'éventuelles bonnes âmes. La solution a été d'utiliser le web comme presse-papier mondial : il existe un certain nombre de sites de paste (collage) où un newbie qui a besoin d'aide peut coller son code (certains sites font même un peu de coloriage de code) et donner l'URL à ceux qui souhaitent l'aider.

Une seule ligne est postée sur le canal, et ceux qui veulent donner un coup de main peuvent lire tranquillement le code sur leur navigateur ou le copier/coller (sans les pseudos et l'horodatage de leur client IRC) pour le tester localement. Il existe même des « paste-bots » qui informent un canal choisi de l'ajout de nouvelles entrées sur le site. Voici quelques sites de paste : #! 400 Bad Request <! Construire des robots pour le web (2) Article publié dans Linux Magazine 77, novembre 2005.

Construire des robots pour le web (2)

Un des mongueurs de Lyon est un habitué d'eBay : il vend et achète régulièrement des objets sur ce site de vente aux enchères. Dans le monde des ventes aux enchères, il y a deux types d'enchérisseurs : ceux qui qui achètent effectivement les objets pour lesquels ils enchérissent, et qui ont un profil positif ;ceux qui ont tendance à se rétracter peu avant la fin d'une enchère ou même juste après. Ils sont peu fiables et pénibles pour le vendeur, car ils conduisent à l'échec de la vente.

Ces derniers ont un profil négatif ou nul. Lorsqu'il est dans le rôle du vendeur, notre mongueur ne souhaite donc pas voir participer ces enchérisseurs au profil négatif ou nul. LWP, Le Web en Perl (2) Article publié dans Linux Magazine 57, janvier 2004.

LWP, Le Web en Perl (2)

Copyright © 2004 - Philippe Bruhat. Les outils fournis avec LWP LWP inclut plusieurs utilitaires dont lwp-request, qui est très utile pour tester rapidement des connexions HTTP à la main. Il s'utilise comme suit : $ lwp-request <html><head><title> Vous Etes Perdu ? Les options principales sont : -dN'affiche pas le corps de la réponse. Sous Unix, les scripts GET, HEAD et POST pointent en fait vers lwp-request, qui sait alors forcer la méthode (comme avec l'option -m).

Voici un exemple d'utilisation de lwp-request : Notez les en-têtes Client-*, qui sont rajoutés par LWP::UserAgent et donnent des informations sur le traitement effectué par LWP. Naturellement, lwp-request supporte la variable d'environnement HTTP_PROXY, ce qui me permet par exemple de jeter un œil aux modifications faites par mon proxy basé sur HTTP::Proxy aux requêtes que j'envoie (en supprimant les en-têtes ajoutés par LWP) : Sans proxy, l'en-tête Via disparaît : #! Et voilà ! LWP, Le Web en Perl (1)

Article publié dans Linux Magazine 56, décembre 2003.

LWP, Le Web en Perl (1)

Copyright © 2003 - Philippe Bruhat. Importation de cookies Encore une dernière remarque au sujet des cookies : votre navigateur enregistre lui aussi des cookies sur le disque. Pourquoi ne pas aller chercher celui qui vous intéresse directement dans le fichier correspondant ? Vous trouverez, dans la distribution standard de LWP ou sur CPAN, des modules qui se chargent de lire les cookies stockés au format propriétaire de votre navigateur et de les ajouter à un objet dérivé de HTTP::Cookies, celui-ci pouvant être utilisé par votre agent.

Les modules existants à ce jour sont : HTTP::Cookies::Netscape, HTTP::Cookies::Mozilla, HTTP::Cookies::Microsoft, HTTP::Cookies::iCab, HTTP::Cookies::Safari et HTTP::Cookies::Omniweb. Voici un exemple de script de conversion des cookies Mozilla en cookies LWP. . #! Utilisation d'un proxy LWP::UserAgent supporte l'utilisation d'un serveur mandataire (proxy). $ua->proxy( 'http', ' $ua->proxy(['http', 'ftp'], ' LWP, Le Web en Perl (3) Le project WWW::Mechanize est hébergé sur SourceForge ( et deux listes de diffusion existent : www-mechanize-cvs, qui envoie un courriel automatique pour chaque commit dans le CVS et www-mechanize-development où les développeurs du module font part de leurs projets et discutent des évolutions possibles du module.

LWP, Le Web en Perl (3)

Le trafic est peu volumineux. Pour vous abonner, consultez la page du projet sur SourceForge. WWW::Mechanize est activement développé : 9 nouvelles versions sont sorties ces trois derniers mois. La version de WWW::Mechanize utilisée pour cet article est la 0.70, qui requiert également la toute dernière version de LWP, la 5.76.

Comme pour tout module orienté objet, on commence par créer une instance de la classe, c'est-à-dire un objet WWW::Mechanize. my $bot = WWW::Mechanize->new(); Notez que WWW::Mechanize utilise toujours les proxies définis par les variables d'environnement. [Courses] [Perl] Part 2: Scalar Variables. Perl. Perl.