$filled_out_request = $forms[1]->click;
$cookie_jar->add_cookie_header($filled_out_request);
####
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
my $url = 'http://browseusers.myspace.com/Browse/Browse.aspx';
$mech->get($url);
my $form = $mech->form_name("frmBrowse");
$mech->set_fields( zipRadius => 5,
zipCode => 92630,
Page => 75,
);
my $response = $mech->submit();
print $response->content;
####
#!/usr/bin/perl
use strict;
use warnings;
use CGI ':standard';
use LWP::UserAgent;
use HTML::Form;
use HTML::LinkExtor;
my $browser = LWP::UserAgent->new;
my $browse_url = 'http://browseusers.myspace.com/Browse/Browse.aspx';
my $response = $browser->get($browse_url);
my @forms = HTML::Form->parse($response);
# Pull ACTION out of JavaScript function
my $content = $response->content;
$content =~ m{document\.frmBrowse\.action = "(.*?)"};
my $action_url = "http://browseusers.myspace.com/Browse/" . "$1";
$forms[1]->action($action_url);
my $action = $forms[1]->action;
# Get Form Elements
my $zipRadius = $forms[1]->find_input("zipRadius", "option");
my $zipCode = $forms[1]->find_input("zipCode", "text");
my $minAge = $forms[1]->find_input("minAge", "option");
my $maxAge = $forms[1]->find_input("maxAge", "option");
my $showHasPhotoOnly = $forms[1]->find_input("showHasPhotoOnly", "checkbox");
my $showNamePhotoOnly = $forms[1]->find_input("showNamePhotoOnly", "checkbox");
# Get Hidden Values
my $update = $forms[1]->find_input("update", "submit");
my $__EVENTTARGET = $forms[1]->find_input("__EVENTTARGET");
my $Page = $forms[1]->find_input("Page");
# Assign Values
$zipRadius->value("Any");
$zipCode->value("");
$minAge->value("18");
$maxAge->value("100");
$showHasPhotoOnly->value("on");
$showNamePhotoOnly->value("on");
# Assign Hidden Values
$update->value("");
$__EVENTTARGET->value("update");
$Page->value("1");
# Update Form
my $filled_out_request = $forms[1]->click;
# print $filled_out_request->as_string;
$response = $browser->request($filled_out_request);
# Parse Content For Links
my $p = HTML::LinkExtor->new;
$p->parse($response->content);
my @links = $p->links;
push my @urls, map {$_->[2]} @links;
# Remove Duplicates
my %saw;
@saw{@urls} = ();
my @unique_urls = sort keys %saw;
# Parse Urls
my @pages;
foreach my $sorted_url (@unique_urls) {
# Friend Urls
if ($sorted_url =~ m{http://profile.myspace.com/index.cfm\?fuseaction=user.viewProfile&friendID=(.*?)&}) {
my $friend_id = $1;
#print "$friend_id\n";
}
# Page Urls
if ($sorted_url =~ m{javascript:GotoPage\((.*?)\)\;}) {
my $page = $1;
push(@pages, $page);
}
}
# Get Last Page
my $lastpage = pop @pages;
#print "$lastpage\n";
####
# Attempt to emulate GotoPage Javascript:
#function GotoPage(page) {
# document.frmBrowse.Page.value = page;
# document.frmBrowse.action = "Browse.aspx?MyToken=632697194522788021";
# document.frmBrowse.submit();
# return true;
#}
# Parse Content On Current Page To Get New Token
$content = $response->content;
$content =~ m{document\.frmBrowse\.action = "(.*?)"};
$action_url = "http://browseusers.myspace.com/Browse/" . "$1";
$forms[1]->action($action_url);
$action = $forms[1]->action;
# Set New Hidden Values
$__EVENTTARGET->value("update");
$Page->value("$lastpage");
# Submit New Form
$filled_out_request = $forms[1]->click;
# print $filled_out_request->as_string;
$response = $browser->request($filled_out_request);
# Print Content
$content = $response->content;
print $content;
####
POST /browse/Browse.aspx?MyToken=632697383226956664 HTTP/1.1
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=&Page=75&Gender=genderWomen&minAge=18&maxAge=100&country=US&zipRadius=Any&zipCode=&showHasPhotoOnly=on&showNamePhotoOnly=on&SortBy=sortByLastLogin
####
POST http://browseusers.myspace.com/Browse/Browse.aspx?MyToken=632697383003013250
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=&Page=75&Gender=genderWomen&minAge=18&maxAge=100&country=US&zipRadius=Any&zipCode=&showHasPhotoOnly=on&showNamePhotoOnly=on&SortBy=sortByLastLogin&update=