парсер google

Статус
В этой теме нельзя размещать новые ответы.

maxueld

Постоялец
Регистрация
15 Дек 2008
Сообщения
72
Реакции
28
Нужно получить title, description, url.
Интересуют только первые 10 результатов.
 
на php
PHP:
$gpage = file_get_contents('http://www.google.ru/#hl=ru&source=hp&q=file_get_contents');
дальше регуляторкой разбираешь результаты
 
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($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $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;
}

?>
 
Не работает с русскими символами.
И выдается больше 10 результатов.
 
там кодировка 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($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $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>';

?>
 
Все равно не принимает русские символы
 
а как не принимает, сообщает об ошибке или результат не читаемый? если не читаемый и в браузере на странице виден текст типо Википедия то надо в браузере сменить кодировку на unicode(UTF-8)
 

Вложения

  • search3.zip
    588 байт · Просмотры: 18
Как это использовать для наполнения гс - каталогов (по 100 результатов на странице и таких страниц 500 :ay:) ?

Вопросы от чайника в пхп:
1. Как результаты сохранять в текстовый файл, убрав все лишние выражения типа [3] => Array [title] и т.д.
2. Сгенерировать файл для дальнейшего экспорта в какую-либо цмс (с разбитием на страницы)
3. Ввести следующий ключевой запрос и т.д.
 
Как это использовать для наполнения гс - каталогов (по 100 результатов на странице и таких страниц 500 :ay:) ?
Вопросы от чайника в пхп:
1. Как результаты сохранять в текстовый файл, убрав все лишние выражения типа [3] => Array [title] и т.д.
2. Сгенерировать файл для дальнейшего экспорта в какую-либо цмс (с разбитием на страницы)
3. Ввести следующий ключевой запрос и т.д.
Вообще стоило бы сначало почитать, но вот пример:
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 - для каждого свое.
 
Нужно в html или в xml формате...
еще вопрос, как преодолеть ограничение 64 строк? Где его убрать или обойти?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху