Парсер slil.ru (zalil.ru) на php

Тема в разделе "Мелочи", создана пользователем Jed7777, 30 янв 2011.

  1. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Парсер slil.ru (zalil.ru) от Jed7777
    [​IMG]
    PHP:
    <title>Парсер slil.ru (zalil.ru) от Jed7777</title>
    <form method="GET">
    <h2>Парсер slil.ru (zalil.ru) от Jed7777</h2><br />
    Диапазон: <input maxlen="5" name="ot" size="7" type="text" value="30424254" /> - 
    <input maxlen="5" name="do" size="7" type="text" value="30424264" /><br />
    Маска: <input maxlen="5" name="mask" size="15" type="text" value="\.rar" /><br />
    <input type="submit" value="Парсить" /><br /><br />
    - В маске если формат файла то перед ним ставится "\" (Например для архивов rar - "\.rar").<br />
    - Если парсинг без маски, то оставьте поле пустым.<br />
    - Результат в pars.txt<br />
    </form>
    <?php
    if($_GET['ot'] and $_GET['do']){
    set_time_limit(0);
    $ot=$_GET['ot'];
    $do=$_GET['do'];
    $mask $_GET['mask'];
    for(
    $i=0;$i<$do-$ot;$i++){
    $c=$ot+$i;
    $filename2 "id.txt";
    $handle fopen($filename2'a');
    fwrite($handle$c);
    fwrite($handle"\n");
    fclose($handle);
    }
    $han file_get_contents('id.txt'); 
    $han trim($han);  
    $array explode("\n"$han); 
    for(
    $q=0;$q<count($array);$q++){
    $sss="http://zalil.ru/".$array[$q]."";
    $txt = <<<HERO
    <script>document.write ("Проверяем на соответствие: $sss<br>");</script>
    HERO;
    print 
    $txt;
    ob_flush();
    flush();
    $topic socketdo("zalil.ru"""$sss$browser1$goodacc1"GET"''0$pr$pp);
    preg_match_all('#(?<=\<p align\=\"center\"\>)[\w\W]*(?=\<br\>\<br\>)#'
        
    $topic
        
    $keyPREG_PATTERN_ORDER);
    for (
    $w=0;$w<count($key);$w++){
      
    $a7=$key[$w];
      
    $a7 str_replace("&nbsp;&nbsp;&nbsp;"" - Ссылка: $sss - Размер: "$a7);
    $preg '#.*'.$mask.'#';
    preg_match($preg,$a7[0],$key2);
    if(!empty(
    $key2)){
    $filename2 "pars.txt";
    $handle fopen($filename2'a');
    $str implode ("\n"$a7);
    fwrite($handle$str);
    fclose($handle);
    }
    }
    }
    unlink('id.txt');
    echo 
    'Готово!';
    } else {
    echo 
    'Заполните поля!';
    }
    function 
    socketdo($host$vars$service_uri$browser$cookies ''$sread 1$method 'POST'$ref ''$addheaders 1$proxy false$proxyport 0$HTTP '1.0')
                {
                    global 
    $proxy$proxyport;
                    
    $ret "";
                    if (
    $method == 'GET' && $vars) {
                        
    $service_uri .= '?' $vars;
                        
    $vars '';
                    }
                    
    $header "Host: $host\r\n";
                    
    $header .= "User-Agent: $browser\r\n";
                    if (
    $addheaders == 1) {
                        
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
                        
    $header .= "Content-Length: " strlen($vars) . "\r\n";
                    }else if (
    $addheaders == 0) {
                        
    $header .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
                        
    $header .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
                        
    $header .= "Accept-Encoding: \r\n";
                        
    $header .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
                    }else if (
    $addheaders == 2) {
                        
    $header .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
                        
    $header .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
                        
    $header .= "Accept-Encoding: \r\n";
                        
    $header .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
                        
    $header .= "Pragma: no-cache\r\n";
                        
    $header .= "Cache-Control: no-cache\r\n";
                        
    $header .= "Content-Length: " strlen($vars) . "\r\n";
                        
    $header .= "Content-Type: application/x-www-form-urlencoded; charset=windows-1251\r\n";
                    }else if (
    $addheaders == 3) {
                        
    $header .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
                        
    $header .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
                        
    $header .= "Accept-Encoding: gzip,deflate\r\n";
                        
    $header .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
                    }
                    if (
    $ref$header .= "Referer: $ref\r\n";
                    
    $header .= "Connection: close\r\n";
                    if (
    $cookies)
                        
    $header .= "Cookie: $cookies\r\n";
                    
    $header .= "\r\n";
                    if (
    strlen($proxy)>0) {
                        
    $addquery "$method http://$host$service_uri  HTTP/$HTTP\r\n";
                        
    $fp fsockopen("tcp://" $proxy$proxyport$errno$errstr30);
                    }else {
                        
    $addquery "$method $service_uri  HTTP/$HTTP\r\n";
                        
    $fp fsockopen("tcp://" $host80$errno$errstr30);
                    }
                    
    stream_set_timeout($fp30);
                    if (!
    $fp) {
                        print 
    "<font color=red>Socket error: <i>$errstr ($errno)</i></font><br>";
                        return 
    '';
                    }
                    
    fputs($fp$addquery);
                    
    fputs($fp$header $vars);
                    if (
    $sread) {
                        while (!
    feof($fp)) {
                            
    $ret .= fgets($fp128);
                        }
                    }
                    
    fclose($fp);
                    return 
    $ret;
                }
    ?>