flatr0ze
02.09.2009, 01:36
Гутен Таг, уважаемые!
После гнобения трекеров, все чаще приходится прибегать к старым методам добычи вареза и прочей вкуснятины.
Идея созрела в голове давно, но мотивация появилась лишь недавно.
Состоит в следующем: скрипт, перл, запрос вида:
./rapidie.pl http://rapidshare.com/files/95789213/iguana-tghm.r77
Далее вкрипт на первой стадии находит сервер с файлом (и нам не приходится жать на кнопку "Free"), на второй выдергивает ссылку на сам файл (и нам не приходится ждать несколько минут для получения ссылки).
Server is: http://rs271.rapidshare.com/files/95789213/iguana-tghm.r77
File location is: http://rs271l32.rapidshare.com/files/95789213/7020478/iguana-tghm.r77
Помощь нужна с третьей стадией - там появляется кнопка "Submit query", по истечению времени на которую надо смело нажать и получить файл. Тупо вгетом или еще как не получится скачать файл по добытой из второй стадии ссылки - он там есть только как аттачмент (а-ля веб-мэйл).
Я так и не смог понять какой запрос сделать и что запостить чтобы файл полился в рабочую папку со скриптом, поэтому взываю к богам перла!
*молится 10100101...*
Лог финального запроса выглядит примерно вот так (из ФаерФокса, где все пашет нормально):
http://rs735gc.rapidshare.com/files/95768309/5229273/iguana-tghm.r20
POST /files/95768309/5229273/iguana-tghm.r20 HTTP/1.1
Host: rs735gc.rapidshare.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://rs735.rapidshare.com/files/95768309/iguana-tghm.r20
Content-Type: application/x-www-form-urlencoded
Content-Length: 19
mirror=on&x=42&y=46
HTTP/1.x 200 OK
Date: Tue, 01 Sep 2009 21:31:51 GMT
Connection: close
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: Attachment; filename=iguana-tghm.r20
Content-Length: 50000000
Собственно, сам rapidie.pl:
#!/usr/bin/perl
# Title: RapiDIE
# Description: rapidshare fast file downloading script
# Version: 0.7.1
# Author: flatr0ze
use LWP::Simple;
use LWP::UserAgent;
my $url = $ARGV[0];
# STAGE-I: Detecting our server
my $html = get($url);
$html =~ /<form id="ff" action="(.*)" method="post">/;
my $server = $1;
print "\nServer is:\t\t".$server."\n";
# STAGE-II: Getting file location
$trick = LWP::UserAgent->new;
my $request = HTTP::Request->new(POST=>$server);
$request->content_type('application/x-www-form-urlencoded');
$request->content("dl.start=Free");
my $result = $trick->request($request);
my $output = $result->content;
$output =~ /<input checked type="radio" name="mirror" onclick="document.dlf.action=\\'(.*)\\';" \/>/;
my $file = $1;
print "File location is:\t".$file."\n\n";
# STAGE-III: Downloading the file
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST=>$server);
$req->content_type('application/x-www-form-urlencoded');
$req->content("mirror=on&x=55&y=79");
my $res = $ua->request($req);
my $out = $res->content;
#print $out;
После гнобения трекеров, все чаще приходится прибегать к старым методам добычи вареза и прочей вкуснятины.
Идея созрела в голове давно, но мотивация появилась лишь недавно.
Состоит в следующем: скрипт, перл, запрос вида:
./rapidie.pl http://rapidshare.com/files/95789213/iguana-tghm.r77
Далее вкрипт на первой стадии находит сервер с файлом (и нам не приходится жать на кнопку "Free"), на второй выдергивает ссылку на сам файл (и нам не приходится ждать несколько минут для получения ссылки).
Server is: http://rs271.rapidshare.com/files/95789213/iguana-tghm.r77
File location is: http://rs271l32.rapidshare.com/files/95789213/7020478/iguana-tghm.r77
Помощь нужна с третьей стадией - там появляется кнопка "Submit query", по истечению времени на которую надо смело нажать и получить файл. Тупо вгетом или еще как не получится скачать файл по добытой из второй стадии ссылки - он там есть только как аттачмент (а-ля веб-мэйл).
Я так и не смог понять какой запрос сделать и что запостить чтобы файл полился в рабочую папку со скриптом, поэтому взываю к богам перла!
*молится 10100101...*
Лог финального запроса выглядит примерно вот так (из ФаерФокса, где все пашет нормально):
http://rs735gc.rapidshare.com/files/95768309/5229273/iguana-tghm.r20
POST /files/95768309/5229273/iguana-tghm.r20 HTTP/1.1
Host: rs735gc.rapidshare.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://rs735.rapidshare.com/files/95768309/iguana-tghm.r20
Content-Type: application/x-www-form-urlencoded
Content-Length: 19
mirror=on&x=42&y=46
HTTP/1.x 200 OK
Date: Tue, 01 Sep 2009 21:31:51 GMT
Connection: close
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: Attachment; filename=iguana-tghm.r20
Content-Length: 50000000
Собственно, сам rapidie.pl:
#!/usr/bin/perl
# Title: RapiDIE
# Description: rapidshare fast file downloading script
# Version: 0.7.1
# Author: flatr0ze
use LWP::Simple;
use LWP::UserAgent;
my $url = $ARGV[0];
# STAGE-I: Detecting our server
my $html = get($url);
$html =~ /<form id="ff" action="(.*)" method="post">/;
my $server = $1;
print "\nServer is:\t\t".$server."\n";
# STAGE-II: Getting file location
$trick = LWP::UserAgent->new;
my $request = HTTP::Request->new(POST=>$server);
$request->content_type('application/x-www-form-urlencoded');
$request->content("dl.start=Free");
my $result = $trick->request($request);
my $output = $result->content;
$output =~ /<input checked type="radio" name="mirror" onclick="document.dlf.action=\\'(.*)\\';" \/>/;
my $file = $1;
print "File location is:\t".$file."\n\n";
# STAGE-III: Downloading the file
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST=>$server);
$req->content_type('application/x-www-form-urlencoded');
$req->content("mirror=on&x=55&y=79");
my $res = $ua->request($req);
my $out = $res->content;
#print $out;