Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите сделать многопоточность, никак не получается 
:(
    Опции темы
bugmenot1
Дата 16.2.2012, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



Скрипт сохраняет базу с mail.ru агента.
но работает по одной странице=(
заранее благодарен и надеюсь скрипт вам пригодится=) smile 
Код

#!/usr/bin/perl 



use LWP::UserAgent;
use HTTP::Cookies;


################# Config ###############

my $email = '[email protected]';
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 =~ /<a href=\"(.+?)\" id=\"nextbut\">/;
        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 =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/gs;


    while(1)
         {
        my ($nextpage) = $ex =~ /<a href=\"(.+?)\" id=\"nextbut\">/;
        last if (!$nextpage);

        $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content();
        my @mess = $ex =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/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."<br>\r\n".$message."<br><br>\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($_);

     }





PM MAIL   Вверх
bugmenot1
  Дата 17.2.2012, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



help me please
PM MAIL   Вверх
shamber
Дата 17.2.2012, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



а напрямую с mrim работать не?
PM MAIL Jabber   Вверх
bugmenot1
Дата 17.2.2012, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



Цитата(shamber @ 17.2.2012,  12:48)
а напрямую с mrim работать не?

если я правильно понял то думаю нет так как логин не пройдёт тогда
PM MAIL   Вверх
shamber
Дата 17.2.2012, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



C чего логин не пройдет?
Здесь смотрели?

Это сообщение отредактировал(а) shamber - 17.2.2012, 21:46
PM MAIL Jabber   Вверх
bugmenot1
Дата 18.2.2012, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



 smile скрипту от протокола толку небудет, он просто парсит сообщения со страницы на которой пароль стоит тоже

Это сообщение отредактировал(а) bugmenot1 - 18.2.2012, 09:37
PM MAIL   Вверх
bugmenot1
Дата 19.2.2012, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



ПОМОГИТЕ  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.