2009-11-27 3 views
4

Je dois fournir un mot-clé comme "bouilloire en métal bleu" (avec/sans guillemets) et obtenir seulement le nombre de résultats trouvés pour cette recherche. Si je recherche sans devis maintenant, je reçois:Comment obtenir le nombre de résultats trouvés pour un mot-clé dans google

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

Ici, '1 040 000' est le nombre que je veux. Existe-t-il une fonction API pour cela, ou dois-je extraire ce numéro via le HTML? Quelle est la meilleure façon de faire cela?

+3

Votre gravatar est éteint par 22,341 points ... –

+0

@pop, vous pouvez aider avec cela en vouant un vote positif: p lol –

Répondre

1

De l'API Google Ajax, il y a une propriété estimatedResultsCount JSON, mais vous pouvez lire au sujet des plaintes non résolues déposées sur la question Tracker:

nombre de résultats varie
http://code.google.com/p/google-ajax-apis/issues/detail?id=32

(Je vois la question est étiqueté PHP, mais javascript côté client en conjonction peut être d'intérêt.)

+0

merci, l'ajax api peut effectivement être aussi appelé par php –

+0

Bon point. Heureux de vous aider. – micahwittman

-1

Google a fermé son API pour un usage public il y a un certain temps. Si vous souhaitez utiliser une API prise en charge, consultez l'API bing qui fournit cela dans le cadre de ses résultats. Autrement, vous êtes en train de gratter le HTML. Sachez que vous avez montré le formatage pour nous/numéros anglais. Le formatage peut varier sur d'autres sites google et/ou les paramètres de votre profil et/ou les paramètres de votre navigateur.

+0

http://www.bing.com/developers/ –

+0

cette réponse est inexacte puisque google supporte un nouveau api appelé ajax search api maintenant –

+0

l'API ajax ne supporte que les résultats de recherche, pas les informations détaillées demandées sur le nombre total. –

1

Vous pouvez le gratter. Quelque chose comme:

$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]); 

Si vous l'utilisez dans une application, vous enfreindriez probablement les conditions d'utilisation de Google.

Questions connexes