Comment pouvez-vous faire une recherche Google par programmation de l'API Java
Personne ne sait si et comment il est possible de faire une recherche Google par programme - en particulier s'il existe une API Java pour elle?
- Nous avons le soutien de nodejs?
Vous devez vous connecter pour publier un commentaire.
Quelques faits:
Google propose un public search webservice API qui renvoie JSON: http://ajax.googleapis.com/ajax/services/search/web. La Documentation ici
Java offre
java.net.URL
etjava.net.URLConnection
à feu et à gérer les requêtes HTTP.JSON peut être converti en Java pour un fullworthy Javabean objet à l'aide d'un arbitraire Java API JSON. Un des meilleurs est Google Gson.
Maintenant faire le calcul:
Avec cette classe Javabean qui représentent la plus importante de données JSON renvoyé par Google (il retourne en fait plus de données, mais il est laissé à vous comme un exercice pour développer ce Javabean code en conséquence):
Voir aussi:
java.net.URLConnection
Mise à jour depuis novembre 2010 (2 mois après la réponse ci-dessus), le public search webservice est devenu obsolète (et le dernier jour au cours duquel le service a été offert était le 29 septembre 2014). Votre meilleur pari est maintenant l'interrogation http://www.google.com/search directement avec un utilisateur honnête agent et ensuite d'analyser le résultat de l'utilisation d'un Analyseur HTML. Si vous omettez l'agent de l'utilisateur, puis vous obtenez une 403 de retour. Si vous êtes couché dans l'agent utilisateur et simuler un navigateur web (par exemple, google Chrome ou Firefox), vous obtiendrez une manière beaucoup plus large HTML réponse qui est un gaspillage de bande passante et de performance.
Voici un coup d'envoi en utilisant par exemple Jsoup comme analyseur HTML:
NullPointerException
. pourquoi?Dans le Conditions d'utilisation de google on peut lire:
5.3 Vous acceptez de ne pas accéder (ou tenter d'accéder) à tout ou partie des Services par tout autre moyen que par l'interface qui vous est fournie par Google, sauf si vous y avez été expressément autorisé à le faire dans un accord distinct conclu avec Google. En particulier, vous vous engagez à ne pas accéder (ou tenter d'accéder) à tout ou des Services par des moyens automatisés (y compris l'utilisation de scripts ou des robots web), et à vous conformer aux instructions énoncées dans les robots.txt fichier présent sur les Services.
Donc je suppose que la réponse est Non. De plus au cours de la API SOAP n'est plus disponible
De recherche google à l'aide de l'API, vous devez utiliser Recherche Personnalisée Google, la récupération de la page web est pas permis
En java, vous pouvez utiliser CustomSearch de l'API de la Bibliothèque du Client pour Java
La dépendance maven est:
Exemple la recherche par code à l'aide de Google CustomSearch de l'API de la Bibliothèque du Client
Comme vous pouvez le voir, vous aurez besoin de demande d'une clé api et l'installation d'un moteur de recherche id, cx.
Actuellement (date de la réponse), vous obtenez 100 appels de l'api par jour pour gratuit, google aime partager votre profit.
En effet, il existe une API de recherche de google par programmation. L'API est appelée de recherche personnalisé de google. Pour l'utilisation de cette API, vous aurez besoin d'un Google Developer API key et un cx clé. Une procédure simple pour accéder à la recherche google à partir d'un programme en java est expliqué dans mon blog http://preciselyconcise.com/apis_and_installations/search_google_programmatically.php
Google TOS ont été un peu assouplie en avril 2014. Maintenant, il est indiqué:
"N'est pas une mauvaise utilisation de nos Services. Par exemple, ne pas interférer avec nos Services ou pour essayer d'y accéder en utilisant une méthode autre que l'interface et les instructions que nous fournissons."
De sorte que le passage sur les "moyens automatisés" et des scripts est maintenant disparu. De toute évidence, il n'est pas encore souhaité (par google) d'accéder à leurs services, mais je pense que c'est maintenant officiellement ouvert à l'interprétation de ce qu'est une "interface" et si cela fait une différence que de la façon dont exactement HTML renvoyée est traitée (rendu ou analysé). De toute façon, j'ai écrit un Java commodité de la bibliothèque, et c'est à vous de décider de l'utiliser ou pas:
https://github.com/afedulov/google-web-search
À la lumière de ces TOS des altérations de la dernière année, nous avons intégré une API qui permet d'accéder à la recherche Google. C'était pour notre propre usage seulement, mais après quelques demandes, nous avons décidé de l'ouvrir. Nous prévoyons d'ajouter d'autres moteurs de recherche dans le futur!
N'importe qui devrait être à la recherche d'un moyen facile à mettre en oeuvre et d'acquérir les résultats de la recherche vous êtes libre de vous inscrire et de donner le RESTE de l'API d'essayer: https://searchapi.io
Il retourne du JSON résultats et devrait être assez facile à mettre en œuvre détaillée de la documentation.
C'est une honte que Bing et Yahoo sont miles d'avance sur Google à ce sujet. Leur Api ne sont pas bon marché, mais au moins disponible.
Comme une alternative à BalusC réponse comme il a été déprécié, et vous devez utiliser les proxy, vous pouvez utiliser ce package. Échantillon de Code:
Bibliothèque sur GitHub