# PODNAME: WWW::Mechanize::Cookbook
# ABSTRACT: Recipes for using WWW::Mechanize

__END__

=pod

=encoding UTF-8

=head1 NAME

WWW::Mechanize::Cookbook - Recipes for using WWW::Mechanize

=head1 VERSION

version 2.22

=head1 INTRODUCTION

First, please note that many of these are possible just using L<LWP::UserAgent>.  Since
C<WWW::Mechanize> is a subclass of L<LWP::UserAgent>, whatever works on C<LWP::UserAgent> should
work on C<WWW::Mechanize>.  See the L<lwpcook> man page included with L<LWP>.

=head1 BASICS

=head2 Launch the WWW::Mechanize browser

    use WWW::Mechanize;

    my $mech = WWW::Mechanize->new( autocheck => 1 );

The C<< autocheck => 1 >> tells Mechanize to die if any IO fails, so you don't have to manually
check.  It's easier that way.  If you want to do your own error checking, leave it out.

=head2 Fetch a page

    $mech->get( "http://search.cpan.org" );
    print $mech->content;

C<< $mech->content >> contains the raw HTML from the web page.  It is not parsed or handled in any
way, at least through the C<content> method.

=head2 Fetch a page into a file

Sometimes you want to dump your results directly into a file.  For example, there's no reason to
read a JPEG into memory if you're only going to write it out immediately.  This can also help with
memory issues on large files.

    $mech->get( "http://www.cpan.org/src/stable.tar.gz",
                ":content_file" => "stable.tar.gz" );

=head2 Fetch a password-protected page

Generally, just call C<credentials> before fetching the page.

    $mech->credentials( 'admin' => 'password' );
    $mech->get( 'http://10.11.12.13/password.html' );
    print $mech->content();

If this object may contact more than one host, scope the credentials to a single host with the
four-argument form; see L<WWW::Mechanize/"$mech-E<gt>credentials( $username, $password )">.

=head1 LINKS

=head2 Find all image links

Find all links that point to a JPEG, GIF or PNG.

    my @links = $mech->find_all_links(
        tag => "a", url_regex => qr/\.(jpe?g|gif|png)$/i );

=head2 Find all download links

Find all links that have the word "download" in them.

    my @links = $mech->find_all_links(
        tag => "a", text_regex => qr/\bdownload\b/i );

=head1 ADVANCED

=head2 See what will be sent without actually sending anything

    $mech->add_handler("request_send", sub { shift->dump; exit; });
    $mech->get("http://www.example.com");

=head1 SEE ALSO

L<WWW::Mechanize>

=head1 AUTHOR

Andy Lester <andy at petdance.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2004 by Andy Lester.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
