Парсер

Статус
В этой теме нельзя размещать новые ответы.
все, получилось, если у кого не получается, надо скачать php_curl.dll именно под вашу версию php, если это не помогло копируем все dll отсюда Z:\usr\local\apache\bin
в папку С:\Windows\system32

Добавлено через 9 минут
Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\parser\parser.php on line 29
блин терь эту ошибку выдает, ставлю задержку в 35 секунд, не помогает.
 
ограничение времени выполнения скрипта изменяется в php.ini или добавить в скрипт
PHP:
 ini_set('max_execution_time', '1000');
если нет curl тогда с file_get_contents

PHP:
<?
ini_set('max_execution_time', '1000');

//64 max
$max_count = 20;
$result_url = "";
$pause = 5;

$keywords=file("keys.txt");
$keywords_count = count($keywords);

for ($i=0;$i<$keywords_count;$i++) 
{
    $keyword=trim($keywords[$i]);
    echo $keyword."<br>";

    $count=0;
    while($count<$max_count){
        $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=ru&rsz=large&start=".$count."&q=".urlencode($keyword);
        $body = file_get_contents($url);
        $json = json_decode($body);
        //echo '<pre>';
        //print_r($json);
        //echo '</pre>';
        
        foreach($json->responseData->results as $value){
            $result_url .= $value->url."\r\n";
            $count+=1;
            if($count>=$max_count)break;
        }
    }
    
    flush();
    //тормоз на $pause сек.
    sleep($pause);

}

$file = fopen("result.txt","a+");
fputs($file, $result_url);
fclose($file);

?>


пауза тогда наверное и не нужна, если использовать api, на гугле ограничений по количеству запросов на api не нашёл.
 
ограничение времени выполнения скрипта изменяется в php.ini или добавить в скрипт
PHP:
 ini_set('max_execution_time', '1000');
если нет curl тогда с file_get_contents

PHP:
<?
ini_set('max_execution_time', '1000');

//64 max
$max_count = 20;
$result_url = "";
$pause = 5;

$keywords=file("keys.txt");
$keywords_count = count($keywords);

for ($i=0;$i<$keywords_count;$i++) 
{
    $keyword=trim($keywords[$i]);
    echo $keyword."<br>";

    $count=0;
    while($count<$max_count){
        $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=ru&rsz=large&start=".$count."&q=".urlencode($keyword);
        $body = file_get_contents($url);
        $json = json_decode($body);
        //echo '<pre>';
        //print_r($json);
        //echo '</pre>';
        
        foreach($json->responseData->results as $value){
            $result_url .= $value->url."\r\n";
            $count+=1;
            if($count>=$max_count)break;
        }
    }
    
    flush();
    //тормоз на $pause сек.
    sleep($pause);

}

$file = fopen("result.txt","a+");
fputs($file, $result_url);
fclose($file);

?>
*** скрытое содержание ***
есть функция set_time_limit() и не надо в php.ini ничего править
 
Напомню что для грабинга есть отличный класс snoopy
что даст более высокий класс при маскировке.
 
в Wamp Servere идёт файл php_curl.dll
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху