[Ищу] Перестал работать парсер urlов из liveinternet

Тема в разделе "SEO Скрипты", создана пользователем Webnic, 4 янв 2012.

  1. Webnic

    Webnic Писатель

    Регистр.:
    7 июн 2011
    Сообщения:
    6
    Симпатии:
    0
    Перестал работать парсер URLов из Liveinternet
    <?php

    $ot = '1'; // с какой страницы
    $do = '3'; // по какую

    /**************
    Скрипт сбора ссылок с рейтинга сайтов Перейти по ссылке
    Используй это во благо, а не для захвата мира... Peace, bro!
    2011 (с) teimos.ru
    **************/

    //Настройки этой адской хреновины [просто впиши настройки и запусти скрипт в браузере]

    $liru_url = 'Перейти по ссылке //URL категории рейтинга, которую будем парсить (слэш "/" на конце ссылки обязателен!)
    $file_to_save_urls = 'urls.txt'; //В этот файлик сохранятся все url'ы

    //Ядерный реактор. Без защитного костюма и спецподготовки доступ запрещен!
    header("Content-Type: text/html; charset=windows-1251");
    ob_implicit_flush();
    set_time_limit(0);
    function t($t, $d=0) {echo '<pre>';print_r($t);echo '</pre>';if ($d==0) exit();}
    function get($url='') {
    $cl = curl_init();
    curl_setopt($cl, CURLOPT_URL, $url);
    curl_setopt($cl, CURLOPT_HEADER, 1);
    curl_setopt($cl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($cl, CURLOPT_TIMEOUT, 15);
    curl_setopt($cl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
    $ex=curl_exec($cl);
    curl_close($cl);
    return $ex;
    }
    function file2array($file) {return array_diff(array_map('trim', file($file)), array(''));}
    function save($file, $data) {
    $o = (file_exists($file) && filesize($file) > 0) ? chr(10) : '';
    $f = fopen($file, 'a+');
    fwrite($f, $o.$data);
    fclose($f);
    return count(file2array($file));
    }
    $html = get($liru_url);
    preg_match_all('!page=(.*)"!Usi', $html, $m);
    $m = array_unique($m[1]);
    $pcount = end($m);
    echo "Нашли $pcount страниц. Парсим... <br>";
    preg_match_all('!<a.*href="Перейти по ссылке" class=a1>.*</a>!Usi', $html, $m);
    $m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'Перейти по ссылке
    $allnum = save($file_to_save_urls, implode(chr(10), $m));
    $numsave = count($m);
    echo "[1] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
    //for ($i=2; $i<=$pcount; $i++) {
    for ($i=$ot; $i<=$do; $i++) {
    $html = get($liru_url.'index.htnl?page='.$i);
    preg_match_all('!<a.*href="Перейти по ссылке" class=a1>.*</a>!Usi', $html, $m);
    $m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'Перейти по ссылке
    $allnum = save($file_to_save_urls, implode(chr(10), $m));
    $numsave = count($m);
    echo "[$i] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
    }
    echo 'Конечная обработка файла... ';
    $arr = file2array($file_to_save_urls);
    $arr = array_unique($arr);
    file_put_contents($file_to_save_urls, implode(chr(10), $arr));
    echo '[ГОТОВО]';
    ?>Выдает результат:
    Нашли 109 страниц. Парсим...
    [1] сохранено в файл 0 ссылок, итого на текущий момент 0 ссылок.
    [2] сохранено в файл 0 ссылок, итого на текущий момент 0 ссылок.
    [3] сохранено в файл 0 ссылок, итого на текущий момент 0 ссылок.
    Конечная обработка файла... [ГОТОВО]
    Если кто-то столкнулся и решил такую проблему прошу помочь. Можно в личку: pay-support@yandex.ru
    Заранее спасибо!​
     
  2. Dali

    Dali

    Регистр.:
    7 апр 2006
    Сообщения:
    155
    Симпатии:
    153
    PHP:
    <?php
     
    $ot 
    '1'// с какой страницы
    $do '3'// по какую
     
    /**************
    Скрипт сбора ссылок с рейтинга сайтов http://www.liveinternet.ru/rating/
    Используй это во благо, а не для захвата мира... Peace, bro!
    2011 (с) teimos.ru
    **************/
     
    //Настройки этой адской хреновины [просто впиши настройки и запусти скрипт в браузере]
     
    $liru_url 'http://www.liveinternet.ru/rating/ru/finance/'//URL категории рейтинга, которую будем парсить (слэш "/" на конце ссылки обязателен!)
    $file_to_save_urls 'urls.txt'//В этот файлик сохранятся все url'ы
     
    //Ядерный реактор. Без защитного костюма и спецподготовки доступ запрещен!
    header("Content-Type: text/html; charset=windows-1251");
    ob_implicit_flush();
    set_time_limit(0);
     
    $html get($liru_url);
    preg_match_all('!page=(.*)"!Usi'$html$m);
    $m array_unique($m[1]);
    $pcount end($m);
    echo 
    "Нашли $pcount страниц. Парсим... <br>";
     
    for (
    $i=$ot$i<=$do$i++) {
    $html get($liru_url.'index.htnl?page='.$i);
    preg_match_all("#<td width=\"100%\"><a name=\"(.+)\"#siU",$html$m);
    $m array_unique($m[1]); foreach($m as $k=>$v$m[$k] = 'http://'.$v;
    $allnum save($file_to_save_urlsimplode(chr(10), $m));
    $numsave count($m);
    echo 
    "[$i] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
    }
    echo 
    'Конечная обработка файла... ';
    $arr file2array($file_to_save_urls);
    $arr array_unique($arr);
    file_put_contents($file_to_save_urlsimplode(chr(10), $arr));
    echo 
    '[ГОТОВО]';
     
     
    function 
    t($t$d=0) {echo '<pre>';print_r($t);echo '</pre>';if ($d==0) exit();}
    function 
    get($url='') {
    $cl curl_init();
    curl_setopt($clCURLOPT_URL$url);
    curl_setopt($clCURLOPT_HEADER1);
    curl_setopt($clCURLOPT_RETURNTRANSFER,1);
    curl_setopt($clCURLOPT_TIMEOUT15);
    curl_setopt($clCURLOPT_FOLLOWLOCATION1);
    curl_setopt($clCURLOPT_USERAGENT'Opera/9.25 (Windows NT 5.1; U; ru)');
    $ex=curl_exec($cl);
    curl_close($cl);
    return 
    $ex;
    }
    function 
    file2array($file) {return array_diff(array_map('trim'file($file)), array(''));}
    function 
    save($file$data) {
    $o = (file_exists($file) && filesize($file) > 0) ? chr(10) : '';
    $f fopen($file'a+');
    fwrite($f$o.$data);
    fclose($f);
    return 
    count(file2array($file));
    }
    ?> 
    Подправил, вроде как парсит :tut: ...
     
  3. mr-graffity

    mr-graffity

    Регистр.:
    29 июл 2010
    Сообщения:
    176
    Симпатии:
    38
    это я когда то этот код писал))))
    потом кидаем домены в парсер кеев с мегаиндекса, и выдергиваем ВЧ с низкой конкуренцией......
    маленькая фишечка
     
  4. Webnic

    Webnic Писатель

    Регистр.:
    7 июн 2011
    Сообщения:
    6
    Симпатии:
    0
    Спасибо за помощь, я голову ломал часа четыре, так и не разобрался, а теперь все заработало!
     
  5. Webnic

    Webnic Писатель

    Регистр.:
    7 июн 2011
    Сообщения:
    6
    Симпатии:
    0
    Точно, так и делаю, распарсиваю мегаиндекс, а затем через кей коллектор прогоняю (что-бы выбрать ВЧ с низкой конкуренцией). Спасибо за полезную совтину!