NAME¶
HTML::HTML5::Parser::UA - simple web user agent class
SYNOPSIS¶
use aliased 'HTML::HTML5::Parser::UA';
my $response = UA->get($url);
die unless $response->{success};
print $response->{decoded_content};
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.
Class Method¶
- "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).
Package Variable¶
- $HTML::HTML5::Parser::NO_LWP
- If true, avoids using LWP::UserAgent.
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.
SEE ALSO¶
HTML::HTML5::Parser.
AUTHOR¶
Toby Inkster, <tobyink@cpan.org>
COPYRIGHT AND LICENSE¶
Copyright (C) 2012 by Toby Inkster
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
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.