web-dev-qa-db-fra.com

API de recherche automatique Google Search?

Google fournit-il un accès API à la saisie semi-automatique pour la recherche comme sur le site réel? Je n'ai rien trouvé.

Je voudrais utiliser la logique de saisie semi-automatique de Google pour la recherche Web sur mon propre site qui repose sur l'API de recherche de Google.

61
Justin Meltzer

La nouvelle URL est:

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

la partie client est requise; Je n'ai pas testé d'autres clients.

[MODIFIER]

Si vous souhaitez le rappel, utilisez ceci:

http://suggestqueries.google.com/complete/search?client=chrome&q=YOURQUERY&callback=callback

Comme l'a découvert @Quandary; le rappel ne fonctionne pas avec le client "firefox".

[EDIT2]

Comme indiqué par @ user2067021, cette API ne fonctionnera plus à partir du 10-08-2015: Mise à jour sur l'API de saisie semi-automatique

68
RickyA

La plupart des méthodes mentionnées ci-dessus fonctionnent pour moi, en particulier les suivantes servent mon objectif.

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

Étant un débutant en programmation Web, je ne suis pas très au courant de la fonctionnalité "Rappel" et du format du fichier renvoyé par la requête. Je suis peu conscient de AJAX et JSON. Quelqu'un pourrait-il fournir plus de détails sur le format de fichier renvoyé par la requête. Merci.

11
Vijay Rajanna

Tout d'abord, accédez à Google, cliquez sur Paramètres (coin inférieur droit), modifiez les paramètres de recherche pour "ne jamais afficher les résultats instantanés. De cette façon, vous obtiendrez une saisie semi-automatique régulière au lieu d'une page complète de résultats instantanés.

Une fois vos paramètres enregistrés, revenez à la page d'accueil principale de Google. Ouvrez les outils de développement de votre navigateur et accédez à l'onglet Réseau. Si vous êtes dans Firefox, vous devrez peut-être recharger la page.

Tapez une lettre dans la zone de recherche. Une nouvelle ligne devrait apparaître dans la fenêtre Réseau que vous venez d'ouvrir. Cette ligne indique d'où proviennent les données de saisie semi-automatique. Copiez cette URL. Ça devrait ressembler a quelque chose comme ca:

https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello

Vous remarquerez votre terme de recherche juste après la partie qui indique q=.

Ajouter &callback=myAmazingFunction à la fin de l'URL. Vous pouvez remplacer myAmazingFunction par ce que vous voulez nommer votre fonction qui gérera les données.

Voici un exemple du code requis pour afficher les données de saisie semi-automatique pour le terme de recherche "a".

<div id="output"></div>

<script>
/* this function shows the raw data */
function myAmazingFunction(data){
    document.getElementById('output').innerHTML = data;
}
</script>

<script src="https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello&callback=myAmazingFunction"></script>

Maintenant que vous savez comment obtenir les données, l'étape suivante consiste à modifier automatiquement ce dernier script (celui avec l'URL de saisie semi-automatique). La procédure de base est la suivante: chaque fois que l'utilisateur tape quelque chose dans la zone de recherche (onkeyup), remplacez le terme de recherche (q = peu importe) dans l'URL, puis ajoutez au corps un script avec cette URL. Supprimez le script précédent afin que le corps ne soit pas encombré.

Pour plus d'informations, voir http://simplestepscode.com/autocomplete-data-tutorial/

10
yaphi1

Pourquoi essayez-vous d'utiliser une saisie semi-automatique? Plus d'informations aideraient à le réduire.

Pour autant que je sache, Google n'en fournit pas, mais ils existent comme auto-complétion de jQuery UI.

MODIFIER:

Si vous utilisez leur vue API de recherche personnalisée ici pour la saisie semi-automatique.

0
Collecter

Salut, je ne sais pas si cette réponse est pertinente pour vous ou non, mais google renvoie les données JSON via la requête get suivante (bien que ce ne soit pas une API officielle, mais de nombreuses barres d'outils utilisent cette API, il n'y a donc aucune raison pour que Google l'interrompe. ):

http://google.com/complete/search?q=<Your keywords here>&hl=en 
0
Sid