парсер google

Тема в разделе "PHP", создана пользователем maxueld, 2 апр 2010.

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

    maxueld Постоялец

    Регистр.:
    15 дек 2008
    Сообщения:
    72
    Симпатии:
    28
    Нужно получить title, description, url.
    Интересуют только первые 10 результатов.
     
  2. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    на php
    PHP:
    $gpage file_get_contents('http://www.google.ru/#hl=ru&source=hp&q=file_get_contents');
    дальше регуляторкой разбираешь результаты
     
  3. polyetilen

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

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    PHP:
    <?
    //64 max
    $max_count 10;

    $keyword=trim('+парсер +google site:nulled.cc');

    $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);
        
    //php 5.2.0
        
    $json json_decode($body);
        
        foreach(
    $json->responseData->results as $value){
            echo 
    $value->title.'<br>'.$value->url.'<br>'.$value->content.'<br><br>';
        }
        
        
    $count+=8;
    }

    ?>
     
  4. maxueld

    maxueld Постоялец

    Регистр.:
    15 дек 2008
    Сообщения:
    72
    Симпатии:
    28
    Не работает с русскими символами.
    И выдается больше 10 результатов.
     
  5. polyetilen

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

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    там кодировка utf-8 для скрипта и для результата, а 16 результатов потому что google через api выдаёт по 8 на страницы, там две страницы, если надо только 10 то взять данные по одному сохранять в массив, когда наберётся 10 то дальше не сохранять в массив, так будет массив с 10 результатами.

    PHP:
    <?
    header('Content-Type: text/html; charset=utf-8');
    //64 max
    $max_count 10;
    $result = array();
    $keyword='+парсер +google site:nulled.cc';

    $count=0;
    $count_array 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);
        
        foreach(
    $json->responseData->results as $value){
            if(
    $count_array>$max_count-1)break;
            
    $result[] = array('title'=>$value->title'url'=>$value->url'content'=>$value->content);
            
    $count_array++;
        }
        
        
    $count+=8;
    }
    echo 
    '<pre>';
    print_r($result);
    echo 
    '</pre>';

    ?>
     
    maxueld нравится это.
  6. maxueld

    maxueld Постоялец

    Регистр.:
    15 дек 2008
    Сообщения:
    72
    Симпатии:
    28
    Все равно не принимает русские символы
     
  7. polyetilen

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

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    а как не принимает, сообщает об ошибке или результат не читаемый? если не читаемый и в браузере на странице виден текст типо Википедия то надо в браузере сменить кодировку на unicode(UTF-8)
     

    Вложения:

    • search3.zip
      Размер файла:
      588 байт
      Просмотров:
      18
  8. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    74
    Как это использовать для наполнения гс - каталогов (по 100 результатов на странице и таких страниц 500 :ay:) ?

    Вопросы от чайника в пхп:
    1. Как результаты сохранять в текстовый файл, убрав все лишние выражения типа [3] => Array [title] и т.д.
    2. Сгенерировать файл для дальнейшего экспорта в какую-либо цмс (с разбитием на страницы)
    3. Ввести следующий ключевой запрос и т.д.
     
  9. Nellisen

    Nellisen Постоялец

    Регистр.:
    4 авг 2008
    Сообщения:
    54
    Симпатии:
    8
    Вообще стоило бы сначало почитать, но вот пример:
    PHP:
    <?php
    $text
    ='';
    foreach(
    $result as $resultX) {
    //Задаешь как надо, например можешь просто перечислить
       
    $text.='Title: '.$resultX['title'].'<br> Url: '.$resultX['url'].'<br> Content:'.$resultX['content'].'<br><hr><br>';
    //Или вывести только тайтлы
       //$text.='Title: '.$resultX['title'].'<hr>';
    //Или только ссылки
       //$text.=$resultX['url']."\r\n";
    }
    //Теперь в $text текстовая строка, можешь её посмотерть
    echo $text;
    //Или сохранить в файл
    file_put_contents('text.txt',$text);
    ?>
    Естественно это только пример, если тебе надо для дле или других движков, или в xml - для каждого свое.
     
    Alex KGB нравится это.
  10. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    74
    Нужно в html или в xml формате...
    еще вопрос, как преодолеть ограничение 64 строк? Где его убрать или обойти?
     
    Dj_StelS нравится это.
Статус темы:
Закрыта.