2010-11-01 4 views
2

Comment obtenir des résultats de recherche google?(PHP) Comment analyser les URL dans les résultats de recherche google?

(j'utilise Zend_Gdata_Gbase pour des résultats de recherche Google get et non DomDocument/htmlsimpleparser parce que ses me semble que Zend_Gdata_Gbase fait spécialement pour l'analyse des résultats Google. si je tort dans ma sélection, s'il vous plaît écrire.)

Mon Fonction pour obtenir des résultats de recherche google pour 'yahoo' ou autre chaîne de recherche de requête: (la fonction obtenir un flux qui devrait avoir le résultat de recherche pour mot 'yahoo', mais quand j'utilise prin_t ($ feed) je ne vois pas l'URL pour chaque résultat)

<?php  
function queryGoogleSearch($queryString='yahoo'){ 
      $service = new Zend_Gdata_Gbase(); 
      $query = $service->newSnippetQuery(); 
      $query->setBq('['.$queryString.']'); 
      $query->setOrderBy('modification_time'); 
      $query->setSortOrder('descending'); 
      $query->setMaxResults('4'); 
      $feed = $service->getGbaseSnippetFeed($query); 
      return $feed; 
    } 
    print_r(queryGoogleSearch()); 
?> 

avoir 4 premiers résultats url (quand je recherche manuellement dans google):

www.yahoo.com, mail.yahoo.com, search.yahoo.com, maps.yahoo.com

Mais je peux Ne les trouve pas lorsque j'imprime la variable $ feed.

S'il vous plaît, que devrais-je changer ou ajouter la fonction inqueryGoogleSearch()? (Ou autre meilleur code)

Merci

Répondre

5

Essayez-vous à la recherche google.com. On dirait que cette classe est pour Google Base, pas moteur de recherche google.com. http://base.google.com/support/bin/answer.py?hl=en&answer=59260

Vous voulez probablement ceci: http://code.google.com/apis/customsearch/v1/overview.html Ils ont récemment juste changé cela. L'ancienne API de recherche google est désormais obsolète depuis le 1er novembre. La recherche personnalisée est la nouvelle API.

Son assez simple à utiliser sans Zend.

http://code.google.com/apis/customsearch/v1/using_rest.html#WorkingResults

Il y a un décodeur JSON en PHP. http://php.net/manual/en/function.json-decode.php

Espérons que ça aide!

+1

Merci! mais comment puis-je utiliser la recherche personnalisée si je dois faire beaucoup de recherches et pas 100 ou un peu plus? ("L'API fournit 100 requêtes de recherche par jour" http://code.google.com/apis/customsearch/v1/overview.html) – Yosef

+0

Vous pouvez l'augmenter si vous en avez besoin de plus. Vous aurez besoin d'une raison valable cependant. Il semble que google s'éloigne de l'API websearch pour commencer à le suivre davantage. Désolé je ne peux pas vous donner une réponse directe, mais theres vraiment pas d'autre moyen.Même si vous avez utilisé cURL pour obtenir les données à l'aide de proxies et les analyser, Google vous bloquera toujours. – Matt

+0

merci beaucoup! (êtes-vous sûr que google me bloquera si je vais utiliser cURL + proxies?) – Yosef

0

L'URL de recherche Google est assez simple, je documenté ce here for a different reason. Lorsque vous google quelque chose, par exemple «blog» la page que vous êtes envoyé est http://www.google.co.uk/search?q=blog. Ce peu après le? est appelée la chaîne de requête (dans ce cas q = blog) qui contient ma recherche. Modifier cela va modifier la chaîne de recherche de googles, et retourner les résultats appropriés.

Comme pour PHP il vous suffit d'ajouter à la fin de http://www.google.co.uk/search?q=

+1

Merci, mais comment votre réponse a-t-elle un lien avec ma question? – Yosef

+1

Votre titre: "(PHP) Comment obtenir des résultats de recherche google?" Texte de la question: "Comment obtenir les résultats de recherche google?", "Ma fonction pour obtenir des résultats de recherche google pour 'yahoo' ou une autre chaîne de recherche de requête". Vous avez laissé entendre que c'est ce que vous voulez, si j'ai mal compris votre question, je suis désolé. –

+0

ok, le problème que je ne peux pas obtenir de $ feed variable les URL de résultats google – Yosef

Questions connexes