Парсер Title и URL

Статус
В этой теме нельзя размещать новые ответы.
попробуй так
PHP:
<?php 
    set_time_limit(0); 
    $url = "сюда пишем адрес на XML карту сайта"; 
    function FetchUrl($url, $postvars, $timeout, $ref, $blank){ 
    sleep($timeout); 
    echo @date("r")." fetching $url \r\n"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_TIMEOUT,30); 
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_URL, trim($url)); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
    $result = curl_exec($ch); 
    if($blank == "1"){ 
    $result = preg_replace("/\n/", "", $result); 
    $result = preg_replace("/\r/", "", $result); 
    } 
    curl_close($ch); 
    return $result; 
    } 
    $page = FetchUrl($url, NULL, NULL, NULL, NULL); 
    preg_match_all("!<loc>(.*?)<\/loc>!si", $page, $out); 
    $fp=fopen("pars_title.txt","w");
    foreach($out[1] as $link){ 
    $page = FetchUrl($link, NULL, NULL, NULL, NULL); 
    preg_match("!<title>(.*?)<\/title>!si", $page, $tit); 
    //exec("echo '".$link."|".trim($tit[1])."' >> pars_title.txt"); 
    fwrite($fp,$link."|".trim($tit[1])."\r\n");
    } 
    fclose($fp);
    ?>
вообще своеобразный стиль )))

Парсер почему то начал глючить, может это не парсер, а что то еще, хрен знает....короче раньше прекрасно парсил в таком виде -

Код:
URL1 | Title1
URL2 | Title2
URL3 | Title3
и т.д.

А сейчас нормально парсит только первые 5-8 урлов а потом парсит только URL, без title, вот так -

Код:
URL1 | Title1
URL2 | Title2
URL3 | Title3
URL4 | Title4
URL5 | Title5
URL6 | Title6
URL7 | 
URL8 | 
URL9 |
и т.д.

Что за хрень с ним случилась не пойму, попробовал пропарсить новые сайты, вот такая хрень случилась, попробовал пропарсить те, которые раньше он уже нормально парсил, все равно то же самое ((( может есть идеи?
 
проверил
PHP:
<?php  
    set_time_limit(0);  
    $url = "http://www.varvashenia.ru/sitemap.xml/0.xml";  
    function FetchUrl($url, $postvars, $timeout, $ref, $blank){  
    sleep($timeout);  
    echo @date("r")." fetching $url \r\n";  
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);  
    curl_setopt($ch, CURLOPT_HEADER, false);  
    curl_setopt($ch, CURLOPT_TIMEOUT,30);  
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip');  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
    curl_setopt($ch, CURLOPT_URL, trim($url));  
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);  
    $result = curl_exec($ch);  
    if($blank == "1"){  
    $result = preg_replace("/\n/", "", $result);  
    $result = preg_replace("/\r/", "", $result);  
    }  
    curl_close($ch);  
    return $result;  
    }  
    $page = FetchUrl($url, NULL, NULL, NULL, NULL);  
    preg_match_all("!<loc>(.*?)<\/loc>!si", $page, $out);  
    $fp=fopen("pars_title.txt","w"); 
    foreach($out[1] as $link){  
    $page = FetchUrl($link, NULL, NULL, NULL, NULL); 
     file_put_contents("log.txt",$page);
    preg_match("!<title>(.*?)<\/title>!si", $page, $tit);  
	echo '".$link."|".trim($tit[1])."';  flush();
    fwrite($fp,$link."|".trim($tit[1])."\r\n"); 
    }  
    fclose($fp); 
    ?>
работает нормально

судя по тому что ты написал регулярка не находит заголовок страницы - смотри файл log.txt
 
работает нормально
судя по тому что ты написал регулярка не находит заголовок страницы - смотри файл log.txt
Спасибо, что откликнулся, в логе пишет вот что -
Код:
<h1>Forbidden access</h1><p><font size="2" color="grey">(Flooding)</font></p>
Не пойму, что это значит?
Типо сервер отключает доступ для парсера?
 
похоже, что на сайте срабатывает антифлуд. попробуй задержку поставить в парсинге, вычислить можно экспериментальным путем время задержки.
 
ну да, банят тебя, вопрос кто - провайдер или хостер

так что проверь на разных сайтах -- на том что стоит в моем последнем коде тоже самое выдает?
 
Все, разобрался, у меня сайты на joomle, и стоит компонент sh404SEF, так вот в нем есть функция "антифлуд", который, каким то не понятным для меня образом, вдруг, начал работать на всех сайтах ))))) пришлось пройтись по сайтам и поотключать это дело. Вот блин )))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху