Есть ли для Ruby модуль, подобный Perl's LWP?

В 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;
}

7
задан Sinan Ünür 25 November 2011 в 22:57
поделиться