resultat google et insertion bdd

Mammouth du PHP | 504 Messages

10 oct. 2011, 20:04

Bonjour,

Je voudrais savoir si il est possible de recuperer les resultats de google et les inserer dans une base de données ?

A la rigueur, je pense a un script xpath mais peut etre existe-t-il d'autres solutions...

Merci de votre aide

Mammouth du PHP | 504 Messages

11 oct. 2011, 09:32

Bonjour a tous,

J'ai lu qu'une API de google permettait de faire ce que je souhaite dans la limite de 100 ou 1000 résultats par jour mais que cette API n'existe plus aujourd'hui (depuis 2006).

Est ce vrai ou existe t il une API qui la remplace ?

Merci de votre aide

Mammouth du PHP | 19672 Messages

11 oct. 2011, 10:17

As-tu regardé directement sur le site approprié de Google ? Parce qu'ils sont quand même les mieux placés pour te répondre sur ce coup là.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 568 Messages

11 oct. 2011, 14:54

C'est quoi le problème de base ?

Quel est le besoin ?

Mammouth du PHP | 504 Messages

11 oct. 2011, 15:37

Bonjour Yosh,

Le probleme de base est de pouvoir récuperer les url, les titres et éventuellement les snipet de résultat de recherche de googlesur des requetes trés spécifiques et les inserer dans une bdd mysql.

A noter que je ne compte pas utiliser ces résultats pour faire une autre moteur :wink:

Merci de ton aide

Eléphant du PHP | 171 Messages

11 oct. 2011, 16:25

Salut,

Ayant travaillé dessus je pense pouvoir te répondre. Google fournit une API pour ce genre de requêtes comme cité plus haut par Cyrano disponible sur cette adresse : http://code.google.com/intl/fr/apis/cus ... rview.html
Mais cette API limite le nombre de requêtes à 100 requêtes de 10 résultats maximum par jours. Ensuite, si tu veux plus de résulats grâce à l'API proposé par Google, il faut payer le nombre de requêtes supplémentaires par pack de 1000 requêtes.

Après tu as la solution maison : c'est à dire, créer un petit parseur, qui va faire la requête et découpe les résultats.
Bien sur, Google met en place un anti bot, qui au bout de trop de requêtes répétitives dans un même intervalle vient te bloquer en te forçant à remplir un captcha.Mais si tu espaces correctement tes requêtes tu ne devrais pas rencontrer de problèmes.

Pour la rapidité de la requête je te conseille d'utiliser CURL qui fournit des performances tout à fait appréciable comparé à ceux de file_get_contents et fopen.

Voilà !
Modifié en dernier par Skw33d le 11 oct. 2011, 16:44, modifié 1 fois.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Mammouth du PHP | 504 Messages

11 oct. 2011, 16:37

Bonjour Skw33d,

Merci de tes précieuses informations :wink:

Je ne connais pas du tout le CURL.

Je vais donc faire une solution maison. Je pensais comme je l'indiquais à plutot utiliser Xpath pour gerer tout ça.

Concernant le delai entre les requetes, aurais tu un dernier conseil par experience sur le delai à prevoir entre les demandes ?

Merci de votre aide

Eléphant du PHP | 171 Messages

11 oct. 2011, 18:59

Je crois que je laissé entre 2 et 3 secondes pour chaque requête mais je ne peux pas te garantir qu'il ne te "bannissent" pas temporairement quand même.
Après il faut aussi prendre en compte que si plusieurs personnes font les requêtes en même temps, le risque de se faire bloquer est agrandi.

Quand j'y pense une solution peut être viable peut être de réaliser la requête en Ajax du coté client (avec Javascript) et de parser le résultat retourner. Ce n'est que mon avis et je ne l'ai pas expérimenté mais je pense que c'est une bonne solution.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.