logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HTML::HTML5::Parser::UA - simple web user agent class

Author

       Toby Inkster, <tobyink@cpan.org>

Description

       This is a simple wrapper around HTTP::Tiny and LWP::UserAgent to smooth out the API differences between
       them. It only supports bog standard "get($url)" requests.

       If LWP::UserAgent is already in memory, this module will use that.

       If LWP::UserAgent is not in memory, then this module will use HTTP::Tiny (or direct filesystem access for
       "file://" URLs).

       If LWP::UserAgent is not in memory, and you attempt to request a URL that HTTP::Tiny cannot handle (e.g.
       an "ftp://" URL), then this module will load LWP::UserAgent and die if it cannot be loaded (e.g. is not
       installed).

       HTML::HTML5::Parser::UA is used by the "parse_file" method of HTML::HTML5::Parser.

   ClassMethod
       "get($url, $ua)"
           Gets  the  URL  and  returns  a  hashref  similar  to  HTTP::Tiny's  hashrefs, but with an additional
           "decoded_content" key, which contains the response body, decoded into a Perl character string (not  a
           byte string).

           If  $ua  is  given  (it's optional), then this user agent will be used to perform the actual request.
           Must be undef or an LWP::UserAgent object (or a subclass) or an HTTP::Tiny object (or a subclass).

   PackageVariable
       $HTML::HTML5::Parser::NO_LWP
           If true, avoids using LWP::UserAgent.

Disclaimer Of Warranties

       THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT  ANY  EXPRESS  OR  IMPLIED  WARRANTIES,  INCLUDING,  WITHOUT
       LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

perl v5.36.0                                       2022-08-28                       HTML::HTML5::Parser::UA(3pm)

Motivation

       LWP::UserAgent is a good piece of software but it has a dependency on HTML::Parser. HTML::Parser is  only
       used  to  provide  one  fairly  esoteric  feature,  which  this  package  doesn't  make use of. (It's the
       "parse_head" option.)

       Because of that, I don't especially want HTML::HTML5::Parser to  have  a  dependency  on  LWP::UserAgent.
       Hence this module.

Name

       HTML::HTML5::Parser::UA - simple web user agent class

See Also

       HTML::HTML5::Parser.

Synopsis

        use aliased 'HTML::HTML5::Parser::UA';

        my $response = UA->get($url);
        die unless $response->{success};

        print $response->{decoded_content};

See Also