Alibek123456
09.08.2012, 23:43
Тема:Архив Майл.ру Агента-Скачка
Цель:выявление ошибок,оптимизация работы и интерфейса.
Примечание: Скрипт написан на ActivePerl: http://www.activestate.com/activeperl/downloads
Сохраняешь скрипт как script.pl
Изменяешь
my $email = 'yourmail@mail.ru';
my $pass = 'yourpass';
на свои значения, сохраняешь, запускаешь...
В папке со скриптом должны начать появляться файлы с архивами под каждого юзера.
Простите админы если что не так, я копался-копался но не нашёл нужной мне темы.
Привет всем форумчанином! Недавно мне понадобился скрипт для скачиванию архива майл.ру агента,такой скрипт я нашёл здесь на сайте, ссылка: /threadnav311596-1-10.html
Так вот в процессе использования скрипта я нашёл некоторые ошибки. Первая: иногда не скачиваются архивы с некоторыми пользователями,при открытии файла переписки(переписки с архива сохраняются в формате html, у каждого юзера собственный файл с перепиской. Пример: xxxx@mail.ru.html-и в этом файле переписка с этим пользователем ) так вот переписки с некоторыми пользователями вообще не сохраняются,страница html пуста. Вторая: когда ставишь код для скачивания переписки с отдельным юзером,скрипт сохраняет лишь недавнюю переписку. (например переписку двух-летней давности не сохраняет) Знающие люди,пожалуйста просмотрите скрипт на наличие ошибок, кто может помогите с модернизацией интерфейса(сделать попроще и попривычней,чтоб открывалась как программа а не как команда).А вот и сам скрипт:
/usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; ################# Config ############### my $email = 'yourmail@mail.ru'; my $pass = 'yourpass'; ############### End Config ############## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19"); my $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, "> ".$file); print OUT "$data\n"; close(OUT); } sub authorization { my ($email, $pass) = @_; my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/; $cookie_jar->clear(); my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]); if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/) { return 1; } } sub get_users { my $ex = $ua->post('http://e.mail.ru/cgi-bin/mrimhistory?', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/cgi-bin/mrimhistory')->content(); my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g; while(1) { my ($nextpage) = $ex =~ //; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g; foreach (@users) { push(@allusers, $_); } } return @allusers; } sub get_messages { my ($user) = @_; my $i = 0; my $ex = $ua->get('http://e.mail.ru/cgi-bin/mrimhistory?mode=1&email='.$user)->content(); my @allmess = $ex =~/(.+?).+?(.+?).+?/gs; while(1) { my ($nextpage) = $ex =~ //; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @mess = $ex =~/(.+?).+?(.+?).+?/gs; foreach (@mess) { push(@allmess, $_); } print "\t\tpage:".$i++."\n"; } my $arhive = ''; while(@allmess) { my $data = pop(@allmess); my $message = pop(@allmess); my $name = pop(@allmess); $arhive .= $name.' : '.$data."
\r\n".$message."
\r\n\r\n"; } logg($arhive, $user.'.html'); } authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }
скрипт для сохранения переписки с отдельным юзером:
authorization($email, $pass); my @allusers = get_users(); get_messages('Сюда логин друга');
Скрипт приведённый выше вставляем вместо: authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }
Прошу кто может помочь,помогите. Кому не лень,кому не жалко. Очень требуется по работе. Буду чрезмерно благодаренЁ
Цель:выявление ошибок,оптимизация работы и интерфейса.
Примечание: Скрипт написан на ActivePerl: http://www.activestate.com/activeperl/downloads
Сохраняешь скрипт как script.pl
Изменяешь
my $email = 'yourmail@mail.ru';
my $pass = 'yourpass';
на свои значения, сохраняешь, запускаешь...
В папке со скриптом должны начать появляться файлы с архивами под каждого юзера.
Простите админы если что не так, я копался-копался но не нашёл нужной мне темы.
Привет всем форумчанином! Недавно мне понадобился скрипт для скачиванию архива майл.ру агента,такой скрипт я нашёл здесь на сайте, ссылка: /threadnav311596-1-10.html
Так вот в процессе использования скрипта я нашёл некоторые ошибки. Первая: иногда не скачиваются архивы с некоторыми пользователями,при открытии файла переписки(переписки с архива сохраняются в формате html, у каждого юзера собственный файл с перепиской. Пример: xxxx@mail.ru.html-и в этом файле переписка с этим пользователем ) так вот переписки с некоторыми пользователями вообще не сохраняются,страница html пуста. Вторая: когда ставишь код для скачивания переписки с отдельным юзером,скрипт сохраняет лишь недавнюю переписку. (например переписку двух-летней давности не сохраняет) Знающие люди,пожалуйста просмотрите скрипт на наличие ошибок, кто может помогите с модернизацией интерфейса(сделать попроще и попривычней,чтоб открывалась как программа а не как команда).А вот и сам скрипт:
/usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; ################# Config ############### my $email = 'yourmail@mail.ru'; my $pass = 'yourpass'; ############### End Config ############## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19"); my $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, "> ".$file); print OUT "$data\n"; close(OUT); } sub authorization { my ($email, $pass) = @_; my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/; $cookie_jar->clear(); my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]); if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/) { return 1; } } sub get_users { my $ex = $ua->post('http://e.mail.ru/cgi-bin/mrimhistory?', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/cgi-bin/mrimhistory')->content(); my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g; while(1) { my ($nextpage) = $ex =~ //; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g; foreach (@users) { push(@allusers, $_); } } return @allusers; } sub get_messages { my ($user) = @_; my $i = 0; my $ex = $ua->get('http://e.mail.ru/cgi-bin/mrimhistory?mode=1&email='.$user)->content(); my @allmess = $ex =~/(.+?).+?(.+?).+?/gs; while(1) { my ($nextpage) = $ex =~ //; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @mess = $ex =~/(.+?).+?(.+?).+?/gs; foreach (@mess) { push(@allmess, $_); } print "\t\tpage:".$i++."\n"; } my $arhive = ''; while(@allmess) { my $data = pop(@allmess); my $message = pop(@allmess); my $name = pop(@allmess); $arhive .= $name.' : '.$data."
\r\n".$message."
\r\n\r\n"; } logg($arhive, $user.'.html'); } authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }
скрипт для сохранения переписки с отдельным юзером:
authorization($email, $pass); my @allusers = get_users(); get_messages('Сюда логин друга');
Скрипт приведённый выше вставляем вместо: authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }
Прошу кто может помочь,помогите. Кому не лень,кому не жалко. Очень требуется по работе. Буду чрезмерно благодаренЁ