Как получить количество результатов, найденных по ключевому слову в Google - PullRequest
4 голосов
/ 27 ноября 2009

Мне нужно указать ключевое слово типа "синий металлический чайник" (с / без кавычек) и получить только количество результатов, найденных для этого поиска. Если я буду искать без кавычек прямо сейчас, я получу:

 Results 1 - 10 of about 1,040,000 for blue metal kettle. (0.19 seconds)

Здесь «1 040 000» - это число, которое я хочу. Есть ли какая-либо функция API для этого, или я должен извлечь это число через HTML? Какой лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

Вы можете скрести его.Что-то вроде:

$keywords = "blue metal kettle";
$html = file_get_contents("http://www.google.com/?q=" . rawurlencode($keywords));
preg_match('/Results 1 - \d+ of about ([0-9,]+) for/', $html, $reg);
var_dump($reg[1]);

Если вы используете это в приложении, вы, вероятно, нарушите условия использования Google.

1 голос
/ 27 ноября 2009

В API Google Ajax в JSON есть оценочное свойство ResultCount, но вы можете прочитать о неразрешенных жалобах, поданных в систему отслеживания проблем:

Количество результатов варьируется
http://code.google.com/p/google-ajax-apis/issues/detail?id=32

(я вижу, вопрос помечен как PHP, но javascript на стороне клиента в сочетании может представлять интерес.)

0 голосов
/ 27 ноября 2009

Google закрыл свой API для публичного использования довольно давно. Если вы хотите использовать поддерживаемый API, проверьте API Bing, который предоставляет это как часть своих результатов. В противном случае, вы можете отказаться от HTML. Имейте в виду, что вы показали форматирование для нас / английских чисел. Форматирование будет отличаться на других сайтах Google и / или в настройках вашего профиля, и / или в настройках вашего браузера.

...