Est-ce que quelqu'un sait si et comment il est possible de rechercher Google par programme - surtout s'il existe une API Java pour cela?
105
Est-ce que quelqu'un sait si et comment il est possible de rechercher Google par programme - surtout s'il existe une API Java pour cela?
Réponses:
Quelques faits:
Google propose une API de service Web de recherche publique qui renvoie JSON : http://ajax.googleapis.com/ajax/services/search/web . Documentation ici
Java propose
java.net.URL
etjava.net.URLConnection
pour déclencher et gérer les requêtes HTTP.JSON peut en Java être converti en un objet Javabean digne de ce nom à l'aide d'une API Java JSON arbitraire. L'un des meilleurs est Google Gson .
Maintenant, faites le calcul:
Avec cette classe Javabean représentant les données JSON les plus importantes telles que renvoyées par Google (elle renvoie en fait plus de données, mais c'est à vous de jouer en tant qu'exercice pour développer ce code Javabean en conséquence):
Voir également:
java.net.URLConnection
Mis à jour depuis novembre 2010 (2 mois après la réponse ci-dessus), le service Web de recherche publique est devenu obsolète (et le dernier jour où le service a été offert était le 29 septembre 2014). Votre meilleur pari est maintenant d'interroger http://www.google.com/search directement avec un agent utilisateur honnête, puis d'analyser le résultat à l'aide d'un analyseur HTML . Si vous omettez l'agent utilisateur, vous récupérez un 403. Si vous mentez dans l'agent utilisateur et que vous simulez un navigateur Web (par exemple Chrome ou Firefox), vous obtenez une réponse HTML beaucoup plus grande, ce qui est un gaspillage de bande passante et de performances.
Voici un exemple de lancement utilisant Jsoup comme analyseur HTML:
la source
Pour rechercher Google à l'aide de l'API, vous devez utiliser la recherche personnalisée Google , le scraping de page Web n'est pas autorisé
En java, vous pouvez utiliser la bibliothèque cliente de l'API CustomSearch pour Java
La dépendance maven est:
Exemple de recherche de code à l'aide de la bibliothèque cliente de l'API Google CustomSearch
Comme vous pouvez le voir, vous devrez demander une clé API et configurer votre propre identifiant de moteur de recherche, cx .
Actuellement (date de réponse), vous recevez 100 appels API par jour gratuitement, puis Google aime partager vos bénéfices.
la source
Dans les conditions d'utilisation de google, nous pouvons lire:
5.3 Vous acceptez de ne pas accéder (ou tenter d'accéder) à l'un des Services par tout moyen autre que via l'interface fournie par Google, sauf si vous avez été spécifiquement autorisé à le faire dans un accord séparé avec Google. Vous acceptez spécifiquement de ne pas accéder (ou tenter d'accéder) à l'un des Services par tout moyen automatisé (y compris l'utilisation de scripts ou de robots d'exploration Web) et vous vous assurerez de vous conformer aux instructions énoncées dans tout fichier robots.txt présent sur les Services. .
Donc je suppose que la réponse est non. Plus sur l' API SOAP n'est plus disponible
la source
Google TOS a été un peu assoupli en avril 2014. Maintenant, il indique:
"N'abusez pas de nos Services. Par exemple, n'interférez pas avec nos Services ou n'essayez pas d'y accéder en utilisant une méthode autre que l'interface et les instructions que nous fournissons."
Ainsi, le passage sur les «moyens automatisés» et les scripts a disparu. Ce n'est évidemment toujours pas le moyen souhaité (par Google) d'accéder à leurs services, mais je pense qu'il est maintenant formellement ouvert à l'interprétation de ce qu'est exactement une "interface" et si cela fait une différence quant à la façon dont exactement le HTML renvoyé est traité ( rendu ou analysé). Quoi qu'il en soit, j'ai écrit une bibliothèque de commodité Java et c'est à vous de décider de l'utiliser ou non:
https://github.com/afedulov/google-web-search
la source
En effet, il existe une API pour rechercher google par programmation. L'API s'appelle la recherche personnalisée Google. Pour utiliser cette API, vous aurez besoin d'une clé API Google Developer et d'une clé cx. Une procédure simple pour accéder à la recherche Google à partir du programme java est expliquée dans mon blog.
Maintenant mort, voici le lien Wayback Machine .
la source
Comme alternative à la réponse BalusC car elle est obsolète et que vous devez utiliser des proxies, vous pouvez utiliser ce package. Exemple de code:
Bibliothèque sur GitHub
la source
À la lumière de ces modifications du TOS l'année dernière, nous avons créé une API qui donne accès à la recherche de Google. C'était pour notre propre usage mais après quelques demandes, nous avons décidé de l'ouvrir. Nous prévoyons d'ajouter des moteurs de recherche supplémentaires à l'avenir!
Si quelqu'un cherche un moyen simple d'implémenter / d'acquérir des résultats de recherche, vous êtes libre de vous inscrire et d'essayer l'API REST: https://searchapi.io
Il renvoie des résultats JSON et devrait être assez facile à implémenter avec les documents détaillés.
C'est dommage que Bing et Yahoo aient des kilomètres d'avance sur Google à cet égard. Leurs API ne sont pas bon marché, mais au moins disponibles.
la source
Juste une alternative. La recherche sur Google et l'analyse des résultats peuvent également être effectuées de manière générique à l'aide de n'importe quel analyseur HTML tel que Jsoup en Java. Voici le lien vers l'exemple mentionné.
https://www.codeforeach.com/java/example-how-to-search-google-using-java
la source