Bonjour à tous.
Version : ipcop 1.4.11
Je cherche à réaliser un bot perlien grâce à LWP, mais j'ai
des difficultés.
UN SCRIPT À TITRE D'ILLUSTRATION DU PROBLÈME :
------------------------------------------------------------
#!/usr/bin/perl -W
use strict;
use LWP::UserAgent;
use LWP::Debug qw(+);
use Data::Dumper;
my $bot = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'http://www.ixus.net/');
my $res = $bot->request($req);
print Dumper($res);
------------------------------------------------------------
CE QUE RETOURNE LE SCRIPT :
------------------------------------------------------------
LWP::UserAgent::new: ()
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET http://www.ixus.net/
LWP::UserAgent::_need_proxy: Not proxied
LWP::Protocol::http::request: ()
LWP::UserAgent::request: Simple response: Internal Server Error
$VAR1 = bless( {
'_content' => '500 Can\'t locate loadable object for module HTML::Parser in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl .)
',
'_rc' => 500,
'_headers' => bless( {
'client-warning' => 'Internal response',
'client-date' => 'Mon, 02 Apr 2007 21:04:52 GMT',
'content-type' => 'text/plain'
}, 'HTTP::Headers' ),
'_msg' => 'Can\'t locate loadable object for module HTML::Parser in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl .)',
'_request' => bless( {
'_content' => '',
'_uri' => bless( do{\(my $o = 'http://www.ixus.net/')}, 'URI::http' ),
'_headers' => bless( {
'user-agent' => 'libwww-perl/5.803'
}, 'HTTP::Headers' ),
'_method' => 'GET'
}, 'HTTP::Request' )
}, 'HTTP::Response' );
------------------------------------------------------------
Donc on voit qu'il manque au moins HTML::Parser.
1) Je trouve ça bizare car LWP étant installé en standard pourquoi
HTML::Parser ne l'est-il pas ? Je précise que je n'ai pas bidouillé les
paquets installés, c'est l'ipcop original.
2) Dans un deuxième temps, je me suis dit je n'ai qu'à installer
HTML::Parser dans /root comme ceci :
ls -l /root/HTML
-rw-r--r-- 1 root root 2735 2007-04-01 19:43 Filter.pm
-rw-r--r-- 1 root root 6729 2007-04-01 19:43 HeadParser.pm
-rw-r--r-- 1 root root 4589 2007-04-01 19:43 LinkExtor.pm
-rw-r--r-- 1 root root 39509 2007-04-01 20:05 Parser.pm
-rw-r--r-- 1 root root 5790 2007-04-01 19:43 PullParser.pm
-rw-r--r-- 1 root root 10134 2007-04-01 19:43 TokeParser.pm
puis inclure la directive "use HTML::Parser" dans mon script, sachant
que "." (répertoire courrant) est bien dans @INC, et que tout est fait
en tant que "root".
Ça ne marche pas non plus. Des suggestions ?