В Perl есть модуль LWP:
Коллекция libwww-perl представляет собой набор модулей Perl, который обеспечивает простой и последовательный интерфейс прикладного программирования (API) для World-Wide Web. Основным направлением библиотеки является предоставление классов и функций, позволяющих писать WWW-клиенты. Библиотека также содержит модули более общего назначения и даже классы, которые помогают реализовать простые HTTP-серверы.
Существует ли подобный модуль (gem) для Ruby?
Обновление
Вот пример сделанной мной функции, которая извлекает URL с определенного сайта.
use LWP::UserAgent;
use HTML::TreeBuilder 3;
use HTML::TokeParser;
sub get_gallery_urls {
my $url = shift;
my $ua = LWP::UserAgent->new;
$ua->agent("$0/0.1 " . $ua->agent);
$ua->agent("Mozilla/8.0");
my $req = new HTTP::Request 'GET' => "$url";
$req->header('Accept' => 'text/html');
# send request
$response_u = $ua->request($req);
die "Error: ", $response_u->status_line unless $response_u->is_success;
my $root = HTML::TreeBuilder->new;
$root->parse($response_u->content);
my @gu = $root->find_by_attribute("id", "thumbnails");
my %urls = ();
foreach my $g (@gu) {
my @as = $g->find_by_tag_name('a');
foreach $a (@as) {
my $u = $a->attr("href");
if ($u =~ /^\//) {
$urls{"http://example.com"."$u"} = 1;
}
}
}
return %urls;
}