No lo entiendo, esto lleva funcionando casi 8 meses sin fallar ni un día y hoy ha fallado. Es un programilla que se conecta a la página de El País, se baja ciertos cómics y me los envía por correo.
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
my ($url,@links,$mech,$vineta);
$url = "http://www.elpais.com";
$mech = WWW::Mechanize->new(autocheck =>1);
$mech->get($url);
getlink("El Roto");
getlink("Romeu");
getlink("Forges");
# getlink() gets as first and only parameter the name of a cartoonist. It
# finds the link of the cartoon for that day.
sub getlink {
@links = $mech->find_link(
tag => "a",
text_regex => qr/.*$_[0].*/i,);
for (@links) {
my $href = $_->url;
$vineta = "$url$href";
#print "$vineta\n";
}
my $m = WWW::Mechanize->new(autocheck => 1);
$m->get($vineta);
my @links2 = $m->find_image( alt => "$_[0]", n => 2);
if ($m->success){
for (@links2){
my $imageurl = $_->url;
my $imagelink = "$url$imageurl";
#print "imagelink\t$imagelink\n";
$m->get("$imagelink", ":content_file" => "/tmp/$_[0].gif");
use MIME::Lite;
my $msg = MIME::Lite->new(
From => '[email protected]',
To => '[email protected]',
Subject => "$_[0]",
Type => 'multipart/mixed');
$msg->attach(Type =>'TEXT', Data => "$_[0]");
$msg->attach(Type => 'image/gif',
Path => "/tmp/$_[0].gif",
Filename => "$_[0].gif");
$msg->send();
}
}
}
use strict;
use warnings;
use WWW::Mechanize;
my ($url,@links,$mech,$vineta);
$url = "http://www.elpais.com";
$mech = WWW::Mechanize->new(autocheck =>1);
$mech->get($url);
getlink("El Roto");
getlink("Romeu");
getlink("Forges");
# getlink() gets as first and only parameter the name of a cartoonist. It
# finds the link of the cartoon for that day.
sub getlink {
@links = $mech->find_link(
tag => "a",
text_regex => qr/.*$_[0].*/i,);
for (@links) {
my $href = $_->url;
$vineta = "$url$href";
#print "$vineta\n";
}
my $m = WWW::Mechanize->new(autocheck => 1);
$m->get($vineta);
my @links2 = $m->find_image( alt => "$_[0]", n => 2);
if ($m->success){
for (@links2){
my $imageurl = $_->url;
my $imagelink = "$url$imageurl";
#print "imagelink\t$imagelink\n";
$m->get("$imagelink", ":content_file" => "/tmp/$_[0].gif");
use MIME::Lite;
my $msg = MIME::Lite->new(
From => '[email protected]',
To => '[email protected]',
Subject => "$_[0]",
Type => 'multipart/mixed');
$msg->attach(Type =>'TEXT', Data => "$_[0]");
$msg->attach(Type => 'image/gif',
Path => "/tmp/$_[0].gif",
Filename => "$_[0].gif");
$msg->send();
}
}
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
y el fallo que me da es:
Using bash Syntax Highlighting
natxete@etch:~$ elpais.pl -D
Missing base argument at /usr/share/perl5/HTTP/Response.pm line 93
Missing base argument at /usr/share/perl5/HTTP/Response.pm line 93
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
He mirado en este módulo pero la verdad no me dice mucho
También he comprobado los enlaces de el país y así a primera vista no parece que haya cambiado nada desde ayer (cuando sí funcionó). ¿Alguna pista?