I'm not an expert, but what you're asking for looks like a job for Minion: https://metacpan.org/pod/Minion

On 14/11/16 14:41, Alex Povolotsky wrote:
Looks like I was unclear. I do not need only extract all links, I must continue fetching and parsing them, not more than N at a time and if possible not less. I need some king of mirroring crawler.

On Sat, Nov 12, 2016 at 6:25 PM, Scott Wiersdorf <[email protected] <mailto:[email protected]>> wrote:

    Here is a complete working example you can run:

        #!/usr/bin/env perl
        use Mojolicious::Lite;

        get '/random-urls' => sub {
            my $c = shift;
        $c->render_later;

        $c->delay(
                sub {  ## first step
        my $delay = shift;

        $c->ua->get('https://www.random.org/bytes/
        <https://www.random.org/bytes/>',        $delay->begin);
        $c->ua->get('https://www.random.org/integer-sets/
        <https://www.random.org/integer-sets/>', $delay->begin);
        $c->ua->get('https://www.random.org/strings/
        <https://www.random.org/strings/>',      $delay->begin);
        $c->ua->get('https://www.random.org/audio-noise/
        <https://www.random.org/audio-noise/>',  $delay->begin);
                },

                sub {  ## second step
        my $delay = shift;

        for my $dom (map { $_->res->dom } @_) {
            say STDERR $dom->at('title')->text;
        }

        $c->render(text => "Got all the links");
                }
            );
        };

        app->start;


    When the results finally all come back from the first step, the
    second step will print out the page titles to STDERR, and return
    to the client "Got all the links".

    Scott

    On Saturday, November 12, 2016 at 2:47:57 AM UTC-7, Alex
    Povolotsky wrote:

        Hello

        Examples of Mojo::UserAgent are limited to fetching a set of
        files.

        But I need a bit more complex thing: I need to parse a site,
        reading pages, parsing it and reading links, using
        non-blocking UA with, say, 4 downloads at a time, no more and
        if possible no less.

        Can someone give me a good example?

        Alex

-- You received this message because you are subscribed to a topic in
    the Google Groups "Mojolicious" group.
    To unsubscribe from this topic, visit
    https://groups.google.com/d/topic/mojolicious/wdp_pgd4e0k/unsubscribe
    <https://groups.google.com/d/topic/mojolicious/wdp_pgd4e0k/unsubscribe>.
    To unsubscribe from this group and all its topics, send an email
    to [email protected]
    <mailto:[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at https://groups.google.com/group/mojolicious
    <https://groups.google.com/group/mojolicious>.
    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.


--
You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to