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

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

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

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Надеюсь это ты пошутил :D

    В общем то хз где ошибка у тебя, рабочий вариант ниже...


    Code:
    #!/usr/bin/perl 
    
    use LWP::UserAgent;
    use HTTP::Cookies;
    
    
    sub in_file
         {
    	my ($data, $file) = @_;
    	open(OUT, "> ".$file);
    	print OUT "$data\n";
    	close(OUT);
         }
    
    
    
    open(ACCS, 'facebook.txt'); 
    chomp(@acc = <ACCS>);
    close(ACCS);
    
    
    $acc = shift(@acc);
    my ($mail, $pass) = $acc =~ /^(.+?):(.+?)$/;
    
    
    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);
    
    my $ex = $ua->get('http://www.facebook.com/')->content();
    
    
    my ($lsd) = $ex =~/name=\"lsd\" value=\"(.*?)\"/;
    my ($charset_test) = $ex =~/name=\"charset_test\" value=\"(.*?)\"/;
    
    $ex = $ua->post('https://www.facebook.com/login.php?login_attempt=1', 
    
    	[
    		'charset_test' => $charset_test,
    		'lsd' => $lsd,
    		'locale' => 'ru_RU',
    		'email' => $mail,
    		'pass' => $pass,
    		'default_persistent' => '0',
    		'timezone' => '-240'
    
    	],
    
    	Referer => 'http://www.facebook.com'
    
    				);
    
    
    $ex = $ua->get('http://www.facebook.com/')->content();
    
    in_file($ex, 'res.txt');
    
     
  2. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0

    спс но уже у себя нашел проблему. проблема была в юзер агенте. он из файла блал весь список а не конкретно один. по неосторожности допустил ошибку в коде.
     
  3. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    сегодня появилась кака ето не здоровая хе??ня . софт перестал логинится на мейл.ру , снифал вроде нече не поменялось. но везде выкидывает на странице авторизации. перепробовал ~ 20 прокси. и с сотню валидных аков. ефект тот же в браузере норм все. а в софте не работает. подскажите что ха фигня то..

    Code:
    my $resp = $ua->post("https://auth.mail.ru/cgi-bin/auth",
                                [
                                 "Login" => $login,
                                 "Domain" => $dom,
                                 "Password" => $pass,],
    
    	Referer => 'http://mail.ru'
    
    				)->as_string;
     
  4. bad_boy

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    <form method="post" action="http://e.mail.ru/cgi-bin/auth"
     
  5. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    и так пробовал. нечего.
    у них меняется то https://auth.mail.ru/cgi-bin/auth . через пару подключений уже http://e.mail.ru/cgi-bin/auth
     
  6. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Эта строка в скрипте есть?
    Code:
    push @{ $ua->requests_redirectable }, 'POST';
    
     
  7. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    есть. да все работало год без проблем. а тут чтот перестало..
     
  8. [none]

    [none] Banned

    Joined:
    22 Nov 2009
    Messages:
    83
    Likes Received:
    26
    Reputations:
    -6
    как ранее работало, так и сейчас работает
     
  9. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Как считать файл в строковую переменную? По типу php file_get_contents?
     
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Code:
    sub file_get_contents
    {
        local @ARGV = shift;
        local $/ = undef;
        <>;
    }
    
    $data = file_get_contents('file.txt');
    
     
    _________________________
    2 people like this.
  11. red_joker

    red_joker New Member

    Joined:
    4 Nov 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    А если таки со стриктом и без извращений со встроенными переменными :)
    PHP:
    use strict;

    sub file_get_contents {
      
    my ($filename) = @_;
      
    open IN"<"$filename or return undef;
      
    my @all = <IN>;
      
    #chomp @all;
      
    close IN;
      
      
    my $res join("", @all);
      return 
    $res;
    }

    my $data file_get_contents('file.txt');
     
  12. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Спасибо за помощь.

    Хотел еще спросить. Мне подсказали, что в Perl есть сокращенный формат записи цикла фор
    Но, как я понимаю, обратного способа нет? Т.е. если мне нужен цикл не от 1 до 300, а от 300 до 1, в обратном порядке? Тогда только как обычно писать?
     
  13. Киев

    Киев Banned

    Joined:
    9 Aug 2011
    Messages:
    19
    Likes Received:
    8
    Reputations:
    4
    Парни! Есть массив, состоящий из девяток (ну, 9*). Как из этого массива выбрать только xyz'ы ???
     
  14. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    for (reverse 1 .. 300) { ... }
     
    1 person likes this.
  15. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Если по простому, то вроде того:

    Code:
    my @numbers = qw/123456789 987654321 112233456 1113366 111112222 345346457 11455551/;
    
    for my $entry(@numbers)
    {
        my %cnt = map {$_ => 1} split //, $entry;
        if(scalar keys %cnt == 3)
        {
            print $entry, $/;
        }
    }
    
     
    _________________________
  16. FaceLess

    FaceLess New Member

    Joined:
    29 Oct 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    Есть вот такая штука.
    Но на шиндовс 7 закрывается сразу после выполнения. В чём может быть проблема?
     
  17. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    FaceLess,
    Code:
    #!/usr/bin/perl
     @myarray=(A,B,C,1,2,3,4,5,6,7);
     for($i=0;$i<$#myarray;$i++)
     {
     $j=rand(10);
     $randomnum.=$myarray[$j];
     }
     print $randomnum."\n";
     system "pause";
     
  18. FaceLess

    FaceLess New Member

    Joined:
    29 Oct 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    Fepsis,
    То же самое.
     
  19. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Попробуй сначала командную строку запустить, там пропиши:
    perl путь_до_скрипта
     
  20. FaceLess

    FaceLess New Member

    Joined:
    29 Oct 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    Fepsis,
    Вот оно что.
    http://floomby.ru/content/ZE3uMBdfk2
     
Thread Status:
Not open for further replies.