Подправте php скрипт

Discussion in 'Болталка' started by Rasta18, 23 Jul 2013.

  1. Rasta18

    Rasta18 Member

    Joined:
    8 Jul 2009
    Messages:
    83
    Likes Received:
    7
    Reputations:
    0
    php скрипт:
    index.php
    PHP:
    <?php
    $proxylist
    =array();

    include 
    "Snoopy.class.php";
    $delay=10;

    function 
    parse_email($email,$proxy='',$port=80){
    $s=new Snoopy();
    $link="http://www.site.ru/domains?type=created&email=$email";
    $nnn=  mt_rand(1217);
    $s->agent="Mozilla/5.0 (X11; Linux x86_64; rv:$nnn.0) Gecko/20130514 Firefox/$nnn.0";
    if(!empty(
    $proxy)){
    $s->proxy_host=$proxy;
    $s->proxy_port=$port;
    };
    $s->fetch($link);
    $r=$s->results;
    //sleep(1);//Задержка в секунду чтобы не забанили, по моему и без этого работает
    if(!strpos($r,'<div id="filter"'))return -1;
    $match=array();
    preg_match_all("/<td class=\"domain\" data-value=\"(.*?)\"/"$r$match);
    $match=$match[1];
    if(empty(
    $match))return false;
    return 
    $match;
    }

    function 
    get_full($email,&$parse){
    $size=sizeof($parse);    
    $res=$email." [".$size."] ";
    for(
    $i=0;$i<$size;$i++){
    $res.=$parse[$i]." ";        
    };
    $res=trim($res);
    return 
    $res;
    };

    function 
    parse_file($file,$dir,$proxy='',$port=80,$pos=0){
    global 
    $delay;
    echo 
    "Start parsing!\r\n";
    $noc=false;
    $usedproxy=false;
    if(!
    file_exists($dir))mkdir($dir);
    $data=  trim(file_get_contents($file));
    $data=  str_replace("\r"""$data);
    $data=explode("\n",$data);
    $bads=$mails=$full='';
    $per=0;
    if(
    $pos>0)$pos--;
    $pos=round(sizeof($data)*$pos/100);
    for(
    $i=$pos;$i<sizeof($data);$i++){
    $lastper=$per;
    $per=round(100*($i+1)/sizeof($data));
    if(
    $per!=$lastper){$noc=true;$delay=10;echo "$per % \r\n";};
    $email=trim($data[$i]);
    $emailp=explode(';',$email);
    $emailp=$emailp[0];
    $parse=-1;
    if(!
    $usedproxy)$parse=  parse_email($emailp);
    if(
    $parse==-1){
    if(!isset(
    $time1))$time1=time();    
    if(!empty(
    $proxy)){
    $usedproxy=true;    
    $parse=  parse_email($email$proxy$port);
    if(
    $parse==-1){echo "Captcha found on proxy!Email:$email. Sleep $delay minutes!\r\n";if(!$noc)$delay=$delay*2;$noc=false;$usedproxy=falsesleep($delay*60);$i--;continue;}
        
    }else{    
    if(!
    $noc)$delay=$delay*2;$noc=false;    
    //В общем он сдох стабильно на 34% и говорил что капча виновата, а на 37 ожил до 85% и там сново повис, это мыло какое то может быть, на 1 месте 2 раза не дохнут
    echo "Captcha found!Email:$email . Sleep $delay minutes!\r\n";
    sleep($delay*1);    
    $i--;     //Эта строчка требует обязательного парсинга какого то мыла, пока не пропарсит-дальше не идёт
    continue;
    };
    }

    if(!
    $parse){
    $bads.="\r\n".$email;
    $bads=trim($bads);    
    }else{
    $mails.= "\r\n".$email;
    $mails=trim($mails);
    $full.=get_full($email$parse)."\r\n";    
    }
    file_put_contents("$dir/bads.txt"$bads); 
    file_put_contents("$dir/emails.txt"$mails); 
    file_put_contents("$dir/full.txt"$full); 
    }
         
    echo 
    "All done!\r\n";
    };

    function 
    updateProxy($url,$new=false){
    global 
    $proxylist;    
    $s=new Snoopy();
    $s->fetch($url);
    $r=nl2br($s->results);
    $match=array();
    preg_match_all("/\d+\.\d+\.\d+\.\d+:\d+/"$r,$match);
    $data=$match=$match[0];
    //$data=  str_replace("\r", "", $data);
    $size=sizeof($data);
    for(
    $i=0;$i<$size;$i++){    
    if(!
    in_array($data[$i],$proxylist))$proxylist[]=$data[$i];        
    }
        
    }

    function 
    checkProxy($ip){
    $ip=explode(":",$ip);
    $port=$ip[1];
    $ip=$ip[0];
    $name=  gethostbyaddr($ip);
    $s=new Snoopy(); 
    $s->fetch("http://2ip.ru");
    $r=$s->results;
    $match=array();
    preg_match("/<big id=\"d_clip_button\">(.*?)<\/big>/"$r,$match);
    if(empty(
    $match))return false;
    $myip=$match[1];
    $s->proxy_host=$ip;
    $s->proxy_port=$port;
    $s->fetch("http://2ip.ru");
    $r=$s->results;
    $match=array();
    preg_match("/<big id=\"d_clip_button\">(.*?)<\/big>/"$r,$match);
    if(empty(
    $match))return false;
    $ip2=$match[1];
    if(
    $ip2==$myip)return false;
    return 
    true;
    $match=array();    
    }

    function 
    nextProxy($ip=''){
    global 
    $proxylist;    
    $ind=0;
    if(
    $ip!='')$ind=  array_search($ip$proxylist);    
    $size=sizeof($proxylist);
    $per=0;
    for(
    $i=$ind+1;$i<$size;$i++){
    $lastper=$per;
    $per=round(100*($i+1)/sizeof($proxylist));
    if(
    $per!=$lastper){
    echo 
    "$per % \r\n";    
    };
    $ip=$proxylist[$i];
    $r=checkProxy($ip);
    if(
    $r)return $ip;    
    }
    return 
    false;
        
        
    }

    if(!empty(
    $argv)){
    $file=$argv[1];
    $dir=$argv[2]; 
    $proxy=$port='';
    if(isset(
    $argv[3])){
    $proxy=$argv[3]; // если ошибка -пробуем через прокси в 2 раза быстрее по идее
    $proxy=explode(":",$proxy);
    $port=$proxy[1];
    $proxy=$proxy[0];}
    parse_file($file$dir,$proxy,$port); 
    };    



    ?>
    Нужно чтоб работал по списку url из файла, например proxy.txt

    2й файл скрипта
    Snoopy.class.php
    _http://rghost.ru/47605486
     
    #1 Rasta18, 23 Jul 2013
    Last edited: 23 Jul 2013
  2. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    тебе надо чтобы с каждого прокси заходил?
    содержимое файла прокси.ткст
    12238232:80
    3342343:80
    и тд да?
     
  3. Rasta18

    Rasta18 Member

    Joined:
    8 Jul 2009
    Messages:
    83
    Likes Received:
    7
    Reputations:
    0
    совершенно верно
     
  4. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    держи
    Code:
    помещаем всю в функцию 
    function a($proxy) {
    
    кодец
    
    $base = file(siskiproxy.txt');
    foreach ($base as $proxy) {
            echo a(trim($proxy));
    }
     
    #4 InDuStRieS, 23 Jul 2013
    Last edited: 23 Jul 2013
  5. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    лучше застрелиться, чем так писать код.
     
  6. Rasta18

    Rasta18 Member

    Joined:
    8 Jul 2009
    Messages:
    83
    Likes Received:
    7
    Reputations:
    0
    подправь пожалуйста что не так;)
     
  7. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    вот.... дали код готовый и не мождет
    вообщем он с**ил у когото скрипт и просит на халяву сделать
    лето
     
  8. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    понятия не имею, что у тебя не так, у меня глаза вываливаются сразу как смотрю на него. меня на работе закумарили этим вашим пхп и вэбом. тошно уже на него смотреть.
     
  9. Sashon

    Sashon New Member

    Joined:
    31 Mar 2011
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    Все это крайне уныло.
     
  10. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    php - это уныло.
     
  11. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Половину когда можно выпилить за ненадобностью. Не соблюдены отступы что заставляет кровоточить глаза. Многие моменты можно сократить не разжёвывая их на 3 строки.
     
  12. Rasta18

    Rasta18 Member

    Joined:
    8 Jul 2009
    Messages:
    83
    Likes Received:
    7
    Reputations:
    0
    Это обычный парсер и не у кого нечего я не пиз**л мне всего лишь было нужно привязать прокси по списку.
    В php, я "Ноль"
     
    #12 Rasta18, 23 Jul 2013
    Last edited: 23 Jul 2013
  13. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    перепиши на том, что знаешь
     
  14. Sashon

    Sashon New Member

    Joined:
    31 Mar 2011
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    Ins3t, с чего ты начинал?
     
  15. Rasta18

    Rasta18 Member

    Joined:
    8 Jul 2009
    Messages:
    83
    Likes Received:
    7
    Reputations:
    0
    всё равно я не понял куда и как правильно его впихнуть
    /по возможности просто отредактируйте скрипт пожалуйста.
     
  16. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Никто не будет в этом дерьме тупого кодера разибраться бесплатно
     
  17. huntercs16

    huntercs16 Member

    Joined:
    7 Oct 2013
    Messages:
    154
    Likes Received:
    15
    Reputations:
    6
    Я этот отстойняк написал пол года назад чтобы продемонстрировать работу парсера когда мне не нужны были не отступы, не понятность, не документация.
    Хватит писать что код говно, на хеппи хак если даже и есть документация на 1 софтинку, то она не работает 85%.
    Чак, я написал вполне рабочий софт на горячую руку, потом мы спиздили с Растой приват прокси и была мысль туда их подключить.
    Обычно на меня нет претензии когда просят документированный код,
    поэтому хватит писать что софт сырой.
     
  18. huntercs16

    huntercs16 Member

    Joined:
    7 Oct 2013
    Messages:
    154
    Likes Received:
    15
    Reputations:
    6
    Ins3t
    Да софт написан очень мокро, там ещё половина функций не используется.
    Я хотел туда прокси граббер встроить параллельно, только потом забил уже.
     
  19. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    чувак, писать без отступов не есть гуд и тут никакие оправдания не покатят
     
  20. huntercs16

    huntercs16 Member

    Joined:
    7 Oct 2013
    Messages:
    154
    Likes Received:
    15
    Reputations:
    6
    FunOfGun
    Писал и буду писать без отступов, гонял камень а буду гнать ещё и Whisky. Особенно когда нужно чтобы скрипт всего навсего работал а не чтобы его кто то дорабатывал
    Дам совет, бухать плохо. Веди здоровый образ жизни и слушай Мишу Маваши
     
    #20 huntercs16, 26 Oct 2013
    Last edited: 26 Oct 2013