Sunday, June 17, 2007

Orkut Perl Script - Login, Scrapper and more

Intro
This is a PERL script that logs you into Orkut and allows you to scrap yiur friends. Following is the program and beneath it lies the manual to use the program. I assume that you already have PERL installed on your system with the required modules:

  • LWP
  • WWW::Mechanize


Program
#! /usr/bin/perl -w

use WWW::Mechanize;
use HTTP::Cookies;
use HTTP::Request::Common;

use subs qw(print_c login logout home grab proces scrap);


#autoflush STDOUT 1;

printf ("%45s","Command Line Orkut\n");
printf ("%50s","By http://digitalpbk.blogspot.com\n");

#inits
$cj=HTTP::Cookies->new(file => "cookie.jar",autosave=>1,ignore_discard=>1);
$mech = WWW::Mechanize->new(cookie_jar => $cj);

@prc = ("\n","[FAILED]","[ OK ]\n");
#main loop
print_c;
while(<STDIN>)
{
chomp;
@args = split(/ /);

if(@args)
{
exit 0 if($args[0] eq "exit" || $args[0] eq "q");

if($args[0] eq "login") {login(@args);}
elsif($args[0] eq "home") {home(@args);}
elsif($args[0] eq "logout") {logout(@args);}
elsif($args[0] eq "grab") {grab(@args);}
elsif($args[0] eq "process") {proces(@args);}
elsif($args[0] eq "scrap") {scrap(@args);}
elsif($args[0] eq "populate") {populate(@args);}
elsif($args[0] eq "captchaget") {captchaget(@args);}
elsif($args[0] eq "clear") {system("clear");}
print "\n";
}
print_c;
}

exit 0;


sub print_c
{
print "";
print "> ";
print "";
}

sub login
{


print "\nGmail iD : ";
$email = <STDIN>;
print "Password : ";
$pass = <STDIN>;
print $prc[0];

chomp $email;chomp $pass;

RELOGIN:
for($i=3; $i>=0;$i--)
{
printf("%-60s","GET /Home.aspx");
$mech->get("http://www.orkut.com/Home.aspx");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return if($i<=0);
print $prc[2];


$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

if($mech->title =~ m/orkut.*home/i)
{
print "\nAlready Logged In",$prc[0];

$cnt =~ m/<b>(.*)\@gmail.com<\/b>/;

print "\nLogout $1?[n] : ";
$com=<STDIN>;chomp $com;
if($com eq "y")
{
logout;
goto RELOGIN;
}
else
{
return;
}
}

$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

printf("%-60.59s","Parsing for Login Page ");
#print $cnts;
if($cnt !~ m/id='liframe'.*?src='(.*)'/)
{
printf("%10s",$prc[1]);
print " Login page URL Not Found!\nTry Again OR Update the script! ".$prc[0];

return;
}

print $prc[2];
$url = $1;
$j=3;
REDO:
for($i=3;$i>=0;$i--)
{
printf("%-60.59s","GET $url");
$mech->get($url);
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return if($i<=0);

print $prc[2];

$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

$mech->form_number(1);
$mech->field("Email",$email."\@gmail.com");
$mech->field("Passwd",$pass);


printf("%-60.59s","Logging In ... ");

$mech->click("null");

$j--;
if($j && !$mech->success())
{
printf("%10s\n",$prc[1]);
goto REDO;
}
return unless($j);

$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

if(!$mech->find_link(text => "click here to continue"))
{
printf("%10s",$prc[1]);
print "\nWrong Usename or Password!",$prc[0];
return;
}


print $prc[2];
for($i=3;$i>=0;$i--)
{
printf("%-60.59s","Continuing ...");
$mech->follow_link(text => "click here to continue");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return if($i<=0);

print $prc[2];

printf("%-60s","Parsing REDIRECT URL");
$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

if($cnt !~ m/location.replace\("(.*)"\)/)
{
printf("%10s",$prc[1]);
print "\nRedirect script missing!",$prc[0];
return;
}

$url = $1;
$url =~ s/\\u003d/=/g;

print $prc[2];
for($i=3;$i>=0;$i--)
{
printf("%-60.59s","GET $url");
$mech->get($url);
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}
return if($i<=0);

print $prc[2];
print "Logged In!";

#for($i=3; $i>=0;$i--)
#{
# printf("\n%-60s","GET /Home.aspx");
# $mech->get("http://www.orkut.com/Home.aspx");
# last if($mech->success());
#
# printf("%10s",$prc[1]);
# print " Retry (",$i,")".$prc[0] if($i);
#}

#return if($i<=0);
#print $prc[2];

}

sub logout
{

printf("%-60s","Parsing Logout");
if(!$mech->find_link(text => "Logout"))
{
printf("%10s",$prc[1]);
print "\nNot Logged In?",$prc[0];
return;
}


print $prc[2];
for($i=3;$i>=0;$i--)
{
printf("%-60.59s","Logging Out ...");
$mech->follow_link(text => "Logout");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}
return if($i<=0);

print $prc[2];
}

sub home
{
REHOME:
for($i=3; $i>=0;$i--)
{
printf("%-60s","GET /Home.aspx");
$mech->get("http://www.orkut.com/Home.aspx");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

if($i<=0)
{
print $mech->response->as_string;
return;
}
print $prc[2];

if($mech->title !~ m/orkut.*home/i)
{

print $mech->response->as_string;
print "Not Logged In!",$prc[0];
print "\nLogin? [y] : ";
$com=<STDIN>;chomp $com;
if(not($com eq "n"))
{
login;
goto REHOME;
}
else
{
return;
}
}

#$mech->save_content("home.html");

$cnt = $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;
if($cnt =~ m/You are connected to <b>(.*)<\/b> people through <b>(.*)<\/b> friends./){
printf("\n%-20s: %0s (%0s)","Friends",$2,$1);}

if($cnt =~ m/([0-9]+) fans/){
printf("\n%-20s: %0s","Fans",$1);}

if($cnt =~ m/<b>([0-9]+)<\/b> scraps/i){
printf("\n%-20s: %0s","Scraps",$1);}

$cnt =~ m/my friends/g;
print "\nRecent : ";
while($cnt =~ m/Profile\.aspx\?uid=(.*?)">(<b>)*([^<]+)(<\/b>)*<\/a>/g)
{
print "\n\t$3";
}
}

sub grab_community
{
$comid = shift;
unless($file = shift)
{
print "\nFile to store : ";
$file = <STDIN>;
chomp $file;
}

$url = "/CommMembers.aspx?cmm=$comid";


for($i=3; $i>=0;$i--)
{
printf("%-60s","GET $url");
$mech->get("http://www.orkut.com$url");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return 0 if($i<=0);
print $prc[2];

if($mech->title !~ m/orkut.*Community.*Members/)
{
print "Unexpected Page ! : ",$mech->title;
return 0;
}


$cnt = $mech->response->as_string;
#$cnt =~ m/showing <b>1-15<\/b> of (.*?)<\/b>/g;
#print " $1";

open APP,">$file";
$grabed=0;
printf("%-25s","Grabbed: $grabed ");
for($page=2;;$page++)
{
while($cnt =~ m/Profile\.aspx\?uid=(.*?)">(<b>)*([^<]+)(<\/b>)*<\/a>/g)
{
$grabed++;
print APP "\n$1>$3";
}
print "\e[25D";
printf("%-25s","Grabbed: $grabed ");
sleep(3);
if($mech->find_link(text_regex => qr/next/i))
{
$mech->follow_link(text_regex => qr/next/i);
}
else
{
last;
}

last if(!$mech->success());

$cnt = $mech->response->as_string;
}
print "\nSaved to \"$file\"".$prc[0];
close APP;
return $grabed;
}

sub grab_flist
{

$comid = shift;
unless($file = shift)
{
print "\nFile to store : ";
$file = <STDIN>;
chomp $file;
}

$url = "/FriendsList.aspx?uid=$comid";


for($i=3; $i>=0;$i--)
{
printf("%-60s","GET $url");
$mech->get("http://www.orkut.com$url");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return 0 if($i<=0);
print $prc[2];

if($mech->title !~ m/orkut - (.*) Friends/)
{
print "Unexpected Page ! : ",$mech->title;
return 0;
}

print "$1 Friends : ".$prc[0];
$cnt = $mech->response->as_string;
#$cnt =~ m/showing <b>1-15<\/b> of (.*?)<\/b>/g;
#print " $1";

#$file =~ s/>//;
open APP,">$file";
$grabed=0;
printf("%-25s","Grabbed: $grabed ");
for($page=2;;$page++)
{
$cnt =~ m/Profile\.aspx\?uid=(.*?)">(<b>)*([^<]+)(<\/b>)*<\/a>/g;
while($cnt =~ m/Profile\.aspx\?uid=(.*?)">(<b>)*([^<]+)(<\/b>)*<\/a>/g)
{
$grabed++;
print APP "\n$1>$3";
}
print "\e[25D";
printf("%-25s","Grabbed: $grabed ");
sleep(3);
if($mech->find_link(text=> $page))
{
$mech->follow_link(text => $page);
}
else
{
last;
}

last if(!$mech->success());

$cnt = $mech->response->as_string;
}
print "\nSaved to \"$file\"".$prc[0];
close APP;
return $grabed;
}

sub grab_wild
{
$limit = shift;
$got = 0;
my $file;

unless($file=shift)
{
print "\nFile to store : ";
$file = <STDIN>;
chomp $file;
}


print "\nCommunity ID : ";
$comid = <STDIN>;chomp $comid;


open APP4, ">>$file";
print APP4 "\n<comment>CommMem $comid</comment>";
close APP4;

if($comid)
{
$got = grab_community($comid,">$file");
}
else
{
print "\nFriend ID : ";
$comid=<STDIN>;chomp $comid;
print $comid;
return 0 unless($comid);

open APP3, ">>$file";
print APP3 "\n<comment>FriendOf $comid</comment>";
close APP3;

$got = grab_flist($comid,">$file");
}

return 0 unless($got);

$offset=0;
$visits=0;
RESPIDER:
$file =~ s/>//;
open DLL, "$file";
@uids = <DLL>;
close DLL;

$cnt = join("\n",@uids);
$cnt =~ s/<comment>.*?<\/comment>//g;
@uids = split(/\n/,$cnt);
@uids = @uids[$offset..$#uids];

foreach $userid (@uids)
{
if($userid =~ m/([0-9]+)>/)
{
$file =~ s/>//;
if(open APP2, ">>$file")
{
print APP2 "\n<comment>FriendOf $1</comment>";
close APP2;
}
else {print $!," $file";exit}

$got+= grab_flist($1,">$file");
$visits++;
print " Got $got ".$prc[0];
last if($limit < $got);
}
}
if($limit > $got)
{
$offset = $#uids + 1;
goto RESPIDER;
}
print "\n Spider Results : ".$prc[0];
printf("%-30s : %0s\n","Indexed",$got);
printf("%-30s : %0s\n","Spidered",$visits);
print " Tip : Dont forget to simplify the uid file ".$prc[0];
}

sub grab
{
shift;
$what = shift;
$where = shift;
$file = shift;
if(!($what && $where))
{

print "\nArguments missing".$prc[0];
return;
}
if(lc($what) eq "comm" || lc($what) eq "community") {grab_community($where,$file);}
elsif(lc($what) eq "flist" || lc($what) eq "friendlist") {grab_flist($where,$file);}
elsif(lc($what) eq "wild") {grab_wild($where,$file);}
}



sub process_uids
{
my $file;
unless($file=shift)
{
print "\nFile to read : ";
$file = <STDIN>;
chomp $file;
}

open DLL, "$file";
@uids = <DLL>;
close DLL;

$cnt = join("\n",@uids);
$cnt =~ s/<comment>.*?<\/comment>\n//g;
$cnt =~ s/[\n]+/>/g;
$cnt =~ s/>//;

%hc = split(/>/,$cnt);

$file .= ".s";
if($dest = shift) {$file=$dest;}

open DLL,">$file" or die("$!");

$inx=0;
foreach $key (sort keys %hc)
{
$val = $hc{$key};
$inx++;
printf("%6d %28s %0s\n",$inx,"$key","$val");
print DLL "$key>$val>";
}
close DLL;

}


sub proces
{
shift;
$what = shift;
$file = shift;
$extra = shift;
unless($what)
{
print "\nArguments missing".$prc[0];
return;
}

if(lc($what) eq "uids") {process_uids($file,$extra); }

}






sub scrap
{
shift;
$pat = shift;

unless($source=shift)
{
print "\nFile to read : ";
$source = <STDIN>;
chomp $source;
}

if(!open FILE,"$source")
{
print " File not found!".$prc[0];
return;
}
@contents = <FILE>;
close FILE;
chomp @contents;
$cnts = join("",@contents);

$cnts =~ s/<//g;

%hc = split(/>/,$cnts);
$no = 1;
$scrapall=0;
$sc_start=0;
$sc_end=0;
@fkeys=();

$pat = ".*" unless($pat);

foreach $key (sort keys %hc)
{
$val = $hc{$key};
if($val =~ m/$pat/i)
{
printf("%6d %28s %0s\n",$no,"$key","$val");
$no++;
push @fkeys, $key;
}
}

if($no==0)
{
print " Friend Not found !".$prc[0];
}

print "Enter Friend # : ";
$myc = <STDIN>;
chomp $myc;
#todos ...

if($myc =~ m/([0-9]+)-([0-9]+)/)
{
$scrapall=1;
$myc=$sc_start=$1;
$sc_end=$2;
}

if($myc > $no)
{
print "Invalid Response!!!".$prc[0];return;
}
print "Enter Scrap Text : ";
$sctext = <STDIN>;
$sctext =~ s/\\n/\n/g;
#PS: Please do not remove the following if you really like this .... :)
#Please post a link to my website http://digitalpbk.blogspot.com
#thank you :)
$sctext = $sctext."\n[red](Powered by [blue]digitalpbk[/blue].blogspot.com)";
chomp $sctext;

SCRAPNEXT:
$friendid = $fkeys[$myc-1];

print " Scrapping $myc $friendid [$hc{$friendid}]".$prc[0];
sleep(4);
$url = "/Scrapbook.aspx?uid=$friendid";


for($i=3; $i>=0;$i--)
{
printf("%-60s","GET $url");
$mech->get("http://www.orkut.com$url");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}


return 0 if($i<=0);
print $prc[2];

$cnt= $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

if(($mech->title()) =~ m/orkut.*login/i)
{

print "Not Logged In!",$prc[0];
print "\nLogin? [y] : ";
$com=<STDIN>;chomp $com;
if(not($com eq "n"))
{
login;
goto SCRAPNEXT;
}
else
{
return;
}

sleep(3);
goto SCRAPNEXT;
}


if($cnt =~ m/"POST_TOKEN" value="(.*?)"/){
$post_token = $1;}

#print $post_token," ";
if($cnt =~ m/"signature" value="(.*?)"/){
$signature=$1;}
#print $signature;
sleep(3);
for($i=3;$i>=0;$i--)
{
printf( "%-60s","POST scrap");

#$mech->agent_alias("Linux Mozilla");
$mech->request(POST "http://www.orkut.com$url",["POST_TOKEN"=>$post_token,"signature"=>$signature,"scrapText"=>$sctext,"Action.writeScrapBasic"=>"Submit+Query"]);
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return 0 if($i<=0);
print $prc[2];

if($scrapall && $myc < $sc_end)
{
$myc++;
goto SCRAPNEXT;
}
print " Done.".$prc[0];
}

sub populate
{

shift;
$pat = shift;

unless($source=shift)
{
print "\nFile to read : ";
$source = <STDIN>;
chomp $source;
}

if(!open FILE,"$source")
{
print " File not found!".$prc[0];
return;
}
@contents = <FILE>;
close FILE;
chomp @contents;
$cnts = join("",@contents);

$cnts =~ s/<//g;

%hc = split(/>/,$cnts);
$no = 1;
$scrapall=0;
$sc_start=0;
$sc_end=0;
@fkeys=();

$pat = ".*" unless($pat);

foreach $key (sort keys %hc)
{
$val = $hc{$key};
if($val =~ m/$pat/i)
{
printf("%6d %28s %0s\n",$no,"$key","$val");
$no++;
push @fkeys, $key;
}
}

if($no==0)
{
print " Friend Not found !".$prc[0];
}

print "Enter Friend # : ";

$myc = <STDIN>;
chomp $myc;
#todos ...

if($myc =~ m/([0-9]+)-([0-9]+)/)
{
$scrapall=1;
$myc=$sc_start=$1;
$sc_end=$2;
}

if($myc > $no)
{
print "Invalid Response!!!".$prc[0];return;
}

ADDNEXT:
$friendid = $fkeys[$myc-1];

print " Adding $myc $friendid [$hc{$friendid}]".$prc[0];
sleep(4);
$url = "/FriendAdd.aspx?uid=$friendid";


for($i=3; $i>=0;$i--)
{
printf("%-60s","GET $url");
$mech->get("http://www.orkut.com$url");
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}


return 0 if($i<=0);
print $prc[2];

$cnt= $mech->response->as_string;
$cnt =~ s/\n|\s+/ /g;

if(($mech->title()) =~ m/orkut.*login/i)
{

print "Not Logged In!",$prc[0];
print "\nLogin? [y] : ";
$com=<STDIN>;chomp $com;
if(not($com eq "n"))
{
login;
goto ADDNEXT;
}
else
{
return;
}

sleep(3);
goto ADDNEXT;
}


if($cnt =~ m/"POST_TOKEN" value="(.*?)"/){
$post_token = $1;}

#print $post_token," ";
if($cnt =~ m/"signature" value="(.*?)"/){
$signature=$1;}
#print $signature;
sleep(3);
for($i=3;$i>=0;$i--)
{
printf( "%-60s","POST add");

#$mech->agent_alias("Linux Mozilla");
$mech->request(POST "http://www.orkut.com$url",["POST_TOKEN"=>$post_token,"signature"=>$signature,"level"=>"3","Action.yes"=>"Submit+Query"]);
last if($mech->success());

printf("%10s",$prc[1]);
print " Retry (",$i,")".$prc[0] if($i);
}

return 0 if($i<=0);
print $prc[2];

if($scrapall && $myc < $sc_end)
{
$myc++;
goto ADDNEXT;
}
print " Done.".$prc[0];



}


sub captchaget
{
$mech->request(GET "http://www.orkut.com/CaptchaImage.aspx");
open JPEG, ">captcha.jpg";

print JPEG $mech->response->content;
close JPEG;

}


Installing and Executing
To Install Copy the above full program. Paste it in a new text file and rename it as orkut.pl.
To Execute the program open a terminal / DOS Prompt and navigate to the folder where you have the orkut.pl.
Then type
perl orkut.pl


Getting Started
Once you execute the program you get a screen as follows

Command Line Orkut
By http://digitalpbk.blogspot.com
>


Quick Start Scrap all your friends

Command Line Orkut
By http://digitalpbk.blogspot.com
> login
> home
> grab flist [uid here Profile.aspx?uid=some numbers right? copy that numbers here]
Enter File : myfriends
> process uids myfriends
> scrap
Enter File : myfreinds.s
1
2
3
4
.
.
.
N
Enter Friend Number: 1-N
Enter Scrap text : This is coooool.




Avaliable commands
  • login: This command is used to Login into Orkut.com, you will have to enter a valid Username and Password to enter the site. If someone is already logged in the command asks your confirmation to logout that person and log you in or to continue with the existing.

    > login

    Gmail ID : example@example.com
    Password : Password

    GET /Home.aspx [ OK ]
    Parsing for Login Page [ OK ]
    GET https://www.google.com/accounts/ServiceLoginBox?service [ OK ]
    Logging In ... [ OK ]
    Continuing ... [ OK ]
    Parsing REDIRECT URL [ OK ]
    GET http://www.orkut.com/RedirLogin.aspx?msg=0&page=http%3A [ OK ]
    Logged In!



  • home: This command parses the Home.aspx file and gives you a summary of the page as shown below. If you are not logged in the command executes the login and continues if successful.

    > home
    GET /Home.aspx [ OK ]

    Friends : 291 (57,431,788)
    Fans : 138
    Scraps : 4
    Recent :
    abcd (305)
    xyz (391)
    def (151)
    I maybe wrong... (301)
    fghhh (376)
    someone (289)
    exmple (673)
    real (679)


    The number in brackets in friends indicate the total number of people in orkut.
    Recent shows the recently online friends on orkut. All others mean what they stand for.

  • grab what from [to] : Before you can start scrapping or do anything further, you must first build a database of friends or list of orkut id's. The Grab function is used to make the database. It takes two parameters and an optional third parameter:
    • what where: can take values [comm or community | flist or friendlist | wild ]

      comm or community : indicates that the list of friends is going to be grabbed from a community. In this case the from specifies a community id. (Community.aspx?cmm=ID)

      flist or friendlist: indicates that the list of friends is going to be from a friend's friends. In this case the from specifies the Orkut uid (FriendsList.aspx?uid=ID)

      wild : this is a combo of the above and grabs as much people specified by second parameter.

    • to : is an optional parameter that specifies the file to store the grabbed id's. If this parameter is left out, you will be asked to enter the file. If the file exists the new data is appended to the old file.


  • process uids : The grabbed ids by grab is not well formatted and may contain duplicates the process uids command formats the database and makes a final file. This command asks for the source file and makes a new destination file named by appending a .s extension to the original file. The formatted database is displayed.


  • scrap [filter] [source db] : is used to scrap multiple people. It takes 2 optional arguments.
    1. Filter : filters the source db according to the name. If skiped all persons in the database will be marked for scrapping.
    2. Source DB : The .s file that is required. If skiped you will be asked to enter location.


    > scrap just

    File to read : sample.id.s
    1 12312312313123123123 Just for keepin the communities
    Enter Friend # : 1
    Enter Scrap Text : hii \n how are you?
    Scrapping 1 12312312313123123123 [Just for keepin the communities]
    GET /Scrapbook.aspx?uid=12312312313123123123 [ OK ]
    POST scrap [FAILED] Retry (3)
    POST scrap [ OK ]
    Done.

    Enter Friend #: Takes a number or a format like X-X where X is a number. When X-X format is given all people between those two numbers will be marked for scrapping.

    Enter Scrap Text: The scrap text to be entered. To add new lines type \n and the scrap will have newlines when scrapped.

  • populate [Filter] [Source DB]: Same as scrap but this time its used to add the specified people as your friends.

  • captchaget : Just to read a Captcha and store the image as captcha.jpg



License
You are free to modify and edit by retaining a link or reference to this site.
There is no warranty what so ever. Any incidents of Orkut Banning you, or similar events shall not be my responsibility. Provided solely for education purpose. Any damage or inconvenience caused by the script is deeply regretted.
You have been warned.

Winding up...
I know this manual was too brief. I have tried as much to describe the Script. You will have confusions and doubts regarding the usage so please post your questions as a comment. I will be more than glad to answer them. If you really loved it or got it working or was helpful to you let me know. And dont forget to place a link to this page, if you are submitting to another site or forum.

Thanx Happy Orkutting...
:)

PS: If you noticed the Perl script colour coded, and like that check this out.

22 comments:

Anonymous said...

Hi Arun,
Could it be that orkut have again changed the codes.I have followed the steps but after i enter the Username and Password this happens
Home.aspx [OK]
Parsing for Login Page [OK]
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (3).I am trying to do this in a corp environment.Please suggest if there would be a trunaround.

Arun Prabhakar said...

No it works even now.
Atleast the login is not changed,
Can you access orkut on your browser ?
If so try again .... It will work

Anonymous said...

hi arun abhi this side i am stayin in uae dubai.due to some reasons orkut is banned in dubai can you help me out to login and check my scraps on orkut i mean can i use orkut or its impossible in dubai.one more thing is that i am not so good in computers mean to say that i cant execute if you send me a program better if you directly send me a link my e mail id is abhishek_kukreti_ihm@yahoo.co.in

Anonymous said...

Hi Arun,
The problem persists.I am able to login to Orkut from browser both orkut.com and https://www.google.com/accounts/ServiceLoginBox?service
The error is the same:
Home.aspx [OK]
Parsing for Login Page [OK]
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (3)
Thanks.

Anonymous said...

bro how to use it? [:(] ........ i have no knowledge of pearl

Anonymous said...

hi arun..

I got this following error

Can't locate object method "decoded_content" via package "HTTP::Headers" at (eval 16) line 1, < STDIN > line 3.

Why am I getting this error.. Please let me know what to do..

Anonymous said...

hi arun..

is it possible to get the email-ids as well? if yes, please tell us how..

Thanks

Arun Prabhakar said...

Can't locate object method "decoded_content" via package "HTTP::Headers" at (eval 16) line 1, < STDIN > line 3.

hmmm haven't seen this kind of error here .... must be a problem due to wrong version ... get the correct version of the perl modules.

Arun Prabhakar said...

Email IDs

You cannot get everyone's email ids from orkut. There are other methods that doesn't involve programming
--http://digitalpbk.blogspot.com/2007/06/get-anyones-email-id-on-orkut.html

You can see your friends email ids so a program can get all your friends email ids (only friends)

Anonymous said...

hi arun..

your codes are so good.. Could you please add me on yahoo? I want to talk offline..

id: (rentsmartcoder@yahoo.com)

thanks

Unknown said...

i´m geting the same error
GET /Home.aspx [ OK ]
Parsing for Login Page [ OK ]
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (3)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (2)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (1)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED]

what gonna be ?

Unknown said...

i´m geting the same error
GET /Home.aspx [ OK ]
Parsing for Login Page [ OK ]
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (3)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (2)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED] Retry (1)
GET https://www.google.com/accounts/ServiceLoginBox?service [FAILED]

what gonna be ?

Arun Prabhakar said...

hmmm
I guess there mit be smthing wrong with the DNS lookup for www.google.com

Just try visiting the page from a web browser and try again.

Make sure you have installed the correct versions of perl modules.

Anonymous said...

hi arun,

I think orkut changed its code.. Your script stopped working..

Please let us know if you have an updated version

~Rahul

Anonymous said...

the script does not work any more!

Parsing for Login Page [FAILED] Login page URL Not Found!
Try Again OR Update the script!

>

This is what I get.

Regards,

Mayank

Aragorn said...

hi arun

i am gettin the following error.
GET /Home.aspx [ OK ]
Parsing for Login Page [FAILED] Login page URL Not Found!
Try Again OR Update the script!


please look whether somethin changed or not.thanx.

Arun Prabhakar said...

yup orkut scripts have changed.
I havnt followed it up..

:)
do lemme know if anyone has tried making the new one.

Aragorn said...

do u have an idea as to wat could the new procedure of login to orkut be???

Anonymous said...

"Parsing for Login Page [FAILED] Login page URL Not Found!
Try Again OR Update the script!"

Does not work really.
Work on it plz.That's a fantastic script if worked, you did a great job but login does not work anymore.

Anonymous said...

To solve the following error: Can't locate object method "decoded_content" via package "HTTP::Headers" at (eval 16) line 1, < STDIN > line 3.

You will need to install a newer version of HTTP::Message. This can be done locally if you do not have root as it is pure perl (no C). This occurred for me on RHEL4.

hackers said...

hi arun
I have tried your perl script ,but i found errors for retry.
the problem is that u have not include the case when user behind proxy.
kindly do some solution
Regards
Ravi Kumar

Anonymous said...

it's really not works