package WWW::BugMeNot; require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(password); our $VERSION = '0.01'; use strict; use warnings; use LWP::Simple; use HTML::TokeParser; sub password { my $url = $_[0]; my $retrieved_bugmenot_page = &retrieve_bugmenot_url($url); my @userpass = &parse_bugmenot_url($retrieved_bugmenot_page); return @userpass; } sub retrieve_bugmenot_url { my $url = $_[0]; my $retrieved_page = get ("http://bugmenot.com/view.php?url=$url") or die("Could not retrieve http://bugmenot.com/view.php?url=$url"); return $retrieved_page; } sub parse_bugmenot_url { my $page = $_[0]; my $stream = HTML::TokeParser->new(\$page) or die("Parsing Error: $!"); $stream -> get_tag("dd"); my @userpass; $userpass[0] = $stream -> get_text("br"); $userpass[1] = $stream -> get_text("/dd"); return @userpass; } 1; __END__ =head1 NAME WWW::BugMeNot - An interface to the BugMeNot.com website. Given a URL that requires a registration, it returns a donated username and password =head1 VERSION 0.01 - September 12 =head1 SYNOPSIS use WWW::BugMeNot; my $url = "http://www.nytimes.com"; my @username_and_password = password($url); print "Username = $username_and_password[0]"; print "Password = $username_and_password[1]"; =head1 DESCRIPTION Many websites require compulsory registration before they will allow readers to access their pages. This is bad for a variety of reasons, and so many people use BugMeNot.com to share common usernames and passwords. This module provides a programmatic interface to BugMeNot. =head1 INTERFACE WWW::BugMeNot presents one method to the outer world: password("$url") Which takes a URL, and returns an array containing a username and password. The username is in $array[0] and the password in $array[1] That's it. There is currently no checking for sites that are not listed on BugMeNot, and the module will do horrid things upon finding such a beast. =head1 PREREQUISITES L, L =head1 AUTHOR Ben Hammersley Cben@benhammersley.comE> =head1 BUGS Potentially many. This module uses screen-scraping to retrieve the passwords. If BugMeNot change their pages, the module will break. Please use the CPAN bugtracking system at http://rt.cpan.org/ to report bugs, or make suggestions. =head1 SEE ALSO http://www.bugmenot.com =head1 COPYRIGHT AND LICENSE Copyright (C) 2004 by Ben Hammersley This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut