[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    вопросец. как в perl семитировать включеный javascript браузера
     
    #1741 mazaxaka, 3 Dec 2010
    Last edited: 3 Dec 2010
  2. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    как в перле удалить повторы строк в файле с 5 миллионами строк(500МБ+).
    В перле совсем не куку, поэтому был бы признателен за полный "рабочий" код.
     
  3. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    #Wolf#
    функция для удаления дубликатов:
    Code:
    sub unique_arr
    {
        my %uniq = ();
        my @uniq_arr = ();
        foreach my $item (@_) {
            unless ($uniq{$item}) {
                push @uniq_arr, $item;
                $uniq{$item} = 1;
            }
        }
        return @uniq_arr;
    }
    
     
    #1743 SHiNiGaMi, 6 Dec 2010
    Last edited: 6 Dec 2010
  4. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    Code:
    #!/usr/bin/perl 
    
    use List::MoreUtils qw(uniq);
    
    open(ACCS,"accs.txt") || die "File not found";
    
    @strings=<ACCS>;
    @dup=@strings;
    @uniq_list=uniq(@dup);
    print  join(' ',sort(@uniq_list));
    open(ACCS_,">accs_.txt");
    print ACCS_ (join('',sort(@uniq_list)));
    close(ACCS);
    close(ACCS_);
    open(ACCS_,",<accs_.txt");
    $line=@uniq_list;
    $line++ while<ACCS_>;
    close(ACCS_);
    print qq(How many Lines?________); 
    print ( $line,"\n");
    sleep(10);
    на коленях накидал..
    коряво как-то но работает..
    тоьько долго будет 500 мб в оперативу грузить)
    дополнительный модуль нужен List::MoreUtils .

    "accs.txt" - поменяешь на свое..
     
  5. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    Недавно появилась мысля накодить что-нибудь для контакта. Начал ессно с авторизации. Вот код:
    Code:
    #!C:/Perl/bin/perl.exe
    use CGI qw(:all);
    use LWP::UserAgent;
    use HTTP::Request;
    use HTTP::Cookies;
    
    $login = "[email protected]";
    $password = "CoolPass";
    $ua = LWP::UserAgent->new('Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.61');
    $ua->cookie_jar(HTTP::Cookies->new(file => 'cookie.txt', autosave => 1));
    $req = HTTP::Request->new(POST => 'http://login.vk.com/?act=login');
    $req->content_type('application/x-www-form-urlencoded');
    $req->content("email=".$login."&pass=".$password);
    #$req->header('Content-type: text/html; Charset=windows-1251');
    push @{$ua->requests_redirectable}, POST;
    $res = $ua->request($req);
    
    print header();
    print $res->as_string;
    
    он исполнялся, но контакт возврпащал страницу "wrong pass", там он вывел неверный логин,пароль, вся фигня, и в поле email вписал емейл, НО вместо [email protected] вписал user.ru(типа @ это нуль-байт:)). Стоило изменить @ на %40, как все заработало. Находясь в небольшом ступоре переписал код на php:
    PHP:
    <?php
     $login 
    "[email protected]";
     
    $password "CoolPass";
     
    $ch curl_init();
     
    curl_setopt($ch,CURLOPT_URL,"http://login.vk.com/?act=login");
     
    curl_setopt($ch,CURLOPT_POST,1);
     
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
     
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
     
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
     
    curl_setopt($ch,CURLOPT_POSTFIELDS,"email=".$login."&pass=".$password);
     
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
     
    curl_exec($ch) or die("execution error");
     
    curl_close($ch);
    ?>
    Он без проблем направил меня куда надо. Собственно вопрос: Почему Perl(ActivePerl) @ понимает только в виде %40, а php понимает нормально?
     
  6. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    вопросец. кк в перл загрузить фото на сервер? допустим аву вконтакте?

    и еще опрос. как семитировать включеный джаа скрипт браузера?

    и еще один, вот код аторизации в пайпал. но почемуо не авторизирует , кидает на страницу редиректа. а дальше , пишет чо нужно вести мыло и пароль. поле мыла запослено пароля пустое. но переменую пароля передаю правельно. в чем проблема?

     
    #1746 mazaxaka, 9 Dec 2010
    Last edited: 9 Dec 2010
  7. freeuser

    freeuser New Member

    Joined:
    28 Nov 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    SHiNiGaMi, это из-за двойных кавычек (у тебя подставляется переменная @mail).
    Сравни
    HTML:
    print "[email protected]";
    и
    HTML:
    print '[email protected]';
     
  8. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    блин, точно. спасибо;)
     
  9. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    загружаешь вручную смотришь какие данные передаются на сервер..
    исходи из данных подставляешь.
    тоже самое что и при авторизации..
    вот пример загрузки авы на фотострану..

    Code:
    my $res = $ua->post('http://fotostrana.ru/profile/settings/save/',
          Content_Type => 'form-data' ,
           Content => [ 'newUserPhoto' =>['./img/'.$nfile] ,
            'filename' => $nfile ,
           'Content_Type' => 'image/jpeg'] )->as_string;
    ищи откудо берется эта переменная после dispatch=.
    походу это какой-то хеш или хз..
     
    #1749 dpe_x, 9 Dec 2010
    Last edited: 9 Dec 2010
  10. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    ето не переменая. ето постояный адрес при автризации. на класной странице весит ,исходя из даных вегда и делаю. просто отку не когода не грузил по етому не знаю
     
  11. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    как в перле через lwp использовать сокс5?
    с нттр все ясно
    а вот с соксом не получается
     
  12. freeuser

    freeuser New Member

    Joined:
    28 Nov 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Попробуй через http://search.cpan.org/~scr/LWP-Protocol-socks-1.3/
     
  13. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    не получается(


    еще вопросец есть сайт sprashivai.ru , капча вылазит часто. но не могу получить капчу чтобы передать на антигейт. там походу javascript . тк на странице в коде нету путя к капче. где сама картинка знаю. но в пусть нжно указать phpsessid , а вот он гдето спрятан. не могу его выдернуть, прошу помощи
     
  14. [none]

    [none] Banned

    Joined:
    22 Nov 2009
    Messages:
    83
    Likes Received:
    26
    Reputations:
    -6
    попробуй гугл юзать, обычно получается.
     
  15. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    еслиб получилось не спрашивал бы.


    Вопрос 1
    есть сайт sprashivai.ru , капча вылазит часто. но не могу получить капчу чтобы передать на антигейт. там походу javascript . тк на странице в коде нету путя к капче. где сама картинка знаю
    Code:
    http://sprashivai.ru/data/captcha/?PHPSESSID=1a8qd0aqqb8vq5jtqrdptsfbm7&r=2360
    . но в пути нужно указать phpsessid , а вот он где то спрятан. не могу его выдернуть, прошу помощи.


    Вопрос 2
    вот код аторизации в пайпал. но почему то не авторизирует , кидает на страницу редиректа. а дальше , пишет что нужно вести мыло и пароль. поле мыла заполнено пароля пустое. но переменную пароля передаю правильно. в чем проблема?


    Вопрос 3
    как в perl сымитировать включенный javascript браузера
    или как авторизоваться тут igra3k.ru
    вот мой код. но возвращаeт что Js не включен.помогите аторизироватся
    больше переменых там нету.

    Вопрос 4
    авторизация скайпа.
    куки включены. все как обычно. но в ответ мне скайп выдает . мол включите куки. помогите решить проблем ку
    вот код.

    Вопрос 5
    авторизация анигейт.ком, мне в ответ вообще пустая страница шлется, все переменные передаю которые передает браузер.
    Вопрос 5
    авторизация миртесен
    та же фигня авторизация не проходит. в чем проблема сам не могу понять(передаю все необходимые переменные.
     
    #1755 mazaxaka, 18 Dec 2010
    Last edited: 18 Dec 2010
  16. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    вопроспять)

    авторизация на мир тесен.
    вот тебе рабочая авторизация 100%

    Code:
    my $aut = $ua->post('http://mirtesen.ru/login',
                                                  [ 'auth[login]' => $mail,
                                                    'auth[password]' => $pass,
                                                    'auth[remember' => 'on' ,
                                                    'auth[backurl]' => 'http://mirtesen.ru/'])->code;
    только внимательнее там иногда капча лезит после авторизации.
    определяю по ответу
    if ($aut == 302 ) {гуд}
     
  17. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    спасибо работает. видно нужно было не кодированое слать " []" , капча там лезит после авторизации? или во время?чтобы валид не пропускало
     
  18. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    иногда после авторизации
    но крайне редко
     
  19. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    не успел запихнуть 100 аков на чек. уже капча. и не после а во время авторизации.так что через 302 не получится чекать. нужно еще и капчу водить)
     
  20. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    прикрути прокси
    с прокси редко лезит
    авторизуюсь в 30 потоков разными аками /прокси
    капчи нету
     
    #1760 dpe_x, 19 Dec 2010
    Last edited: 19 Dec 2010
Thread Status:
Not open for further replies.