2008-03-23

Blocket image ripper

Här är ett litet perl-program som hämtar de senaste bilderna från Blockets Landskrona-annonser och lägger dem på en HTML-sida. Det ger ett lite roligare sätt att bläddra genom annononserna tycker jag.


use strict;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new();
my $url = "http://www.blocket.se/li?ca=23_9_s";
$mech->get( $url );
my @ad_links = ();
my @images = ();
foreach my $link ($mech->links) {
push @ad_links, $link->url() if $link->url() =~ m/^\/vi\//;
}

foreach my $ad_link (@ad_links) {
$mech->get("http://www.blocket.se" . $ad_link);
foreach my $image ($mech->images) {
my $image_url = $image->url();
push @images, $image->url() if $image->url() =~ m/\/images\//;
}
}
print '<html><head><title>Blocketbilder - Landskrona</title></head><body>';
foreach my $image (@images) {
print '<img src="' . $image . '">';
}
print '</body></html>';


Det som återstår är att ge möjlighet att välja kommun eller område, att ange antal bilder som ska visas, att göra bilderna klickbara och peka på orginalartikeln, att sätta alt och title till artikelrubriken, eventuellt skriva ut rubrikerna på sidan också, lägg till felhantering, schemalägg körningarna och planera hur publicering (deploy) ska gå till och styla sidan lite. Lite bättre strukturerad perl-kod hade inte heller skadat. Detta överlåts åt den intresserade läsaren, jag tänker nämligen ta ett glas vin istället.

0 kommentar(er):