Парсер

Тема в разделе "PHP", создана пользователем goodwin14, 28 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. goodwin14

    goodwin14 Постоялец

    Регистр.:
    21 мар 2009
    Сообщения:
    146
    Симпатии:
    11

    Помогите написать парсер гугла. Чтоб задержка была, и в цикле:thenks::bc: пока что есть такой код
    PHP:
    <?php 
    $keywords
    =file("keys.txt");
    for (
    $i=0;$i<count($keywords);$i++) 
    {
     
    $keyword=trim($keywords[$i]);
     
    $s=file_get_contents("http://www.google.com/search?q=".$keyword."&num=20"); 
     
    $preg='#\"(http://)[a-z\.]+\/*[\S]+\"#'
     
    $p=preg_match_all($preg,$s,$ar,PREG_SET_ORDER); 
      for(
    $i=0;$i<$p-1;$i++) 
       { 
        If(!
    strchr($ar[$i][0],"google"))  
         {  
          
    $ar[$i][0]=str_replace('"',"",$ar[$i][0]); 
          echo 
    $ar[$i][0]."<br>"
         
          
    $file fopen ("result.txt","a+");
          
    fputs ($file,$ar[$i][0]."\n");
          
    fclose($file);
         }  
       }  

    ?>

     
  2. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Задержка в цикле? Ты имеешь ввиду
    PHP:
    sleep(n); //n-задержка в секундах
    ?
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    задержка это sleep(секунд)

    а поиск может подойдёт через google ajax search api

    PHP:
    <?

    //64 max
    $max_count 1;

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

    for (
    $i=0;$i<count($keywords);$i++) 
    {
        
    $keyword=trim($keywords[$i]);
        echo 
    $keyword;

        
    $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);
        
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    $body curl_exec($ch);
            
    curl_close($ch);
            
            
    $json json_decode($body);
            echo 
    '<pre>';
            
    print_r($json);
            echo 
    '</pre>';
            
            foreach(
    $json->responseData->results as $value){
                echo(
    $value->url).'<br>';
            }
            
    $count+=8;
        }
        
        
    flush();
        
    //тормоз на 5 сек.
        
    sleep(5);

    }

    ?>

     
    goodwin14 нравится это.
  4. goodwin14

    goodwin14 Постоялец

    Регистр.:
    21 мар 2009
    Сообщения:
    146
    Симпатии:
    11
    не работает, Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\parser\parser.php on line 12
    на локалхосте надо запускать.... и куда url сохраняются что то я не пойму... надо в файл
     
  5. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    У тебя cURL есть-то?
    Они никуда не сохраняются - они просто на печать выводятся. Сохранение можешь сам написать по аналогии с твоим предыдущим скриптом)
     
  6. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Поставь себе CURL расширение для пхп и почитай мануал.
     
  7. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    И можно закоментить в скрипте polyetilen строку
    PHP:
    print_r($json);
    =) Он наверное забыл убрать тестовый вывод.
     
    goodwin14 нравится это.
  8. goodwin14

    goodwin14 Постоялец

    Регистр.:
    21 мар 2009
    Сообщения:
    146
    Симпатии:
    11
    скачал php_curl.dll
    раскоментировал extension=php_curl.dll

    все равно не работает, где я ступил? :)
     
  9. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    не нуна было ничего качать насколько я помню это библиотека в стандартной поставке PHP идет. Нужно просто раскомментить и перегрузить апач)
     
  10. goodwin14

    goodwin14 Постоялец

    Регистр.:
    21 мар 2009
    Сообщения:
    146
    Симпатии:
    11
    у меня стоит денвер, а в нем нифига нет
     
Статус темы:
Закрыта.