2012-02-08 11 views
5

Insomma, sto cercando un modo per farlo:Leggi i risultati della Ricerca Google nell'array PHP?

$results_array = google("search terms"); // returns array of URLs 

Così, per esempio, se i miei termini di ricerca sono stati "i video cat" il mio $ results_array [0] potrebbe essere un URL di YouTube, e $ results_array 1 potrebbe essere su Vimeo.

Ho visto l'API di ricerca personalizzata di Google, ma richiedono tutti complesse trasformazioni JSON, ATOM, REST o qualche altro sistema che è eccessivamente complicato per quello che sto cercando di fare.

Ci sono soluzioni semplici là fuori?

EDIT: ho trovato, grazie ad un altro post

Grazie a this post sono riuscito a capirlo. In breve, ho semplicemente usato il seguente:

$results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

echo $results->responseData->results[$resultNumber]->url; 

Sono un po 'sorpreso e delusi dalle downvotes - sembra essere piuttosto un problema comune con, anzi, una risposta molto semplice. Ciò include JSON, ma è completamente trasparente per l'utente. Forse una soluzione ancora più preciso per quello che ho chiesto sarebbe:

function google($query) { 
    $results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

    return $results->responseData->results 
} 
+4

In che modo JSON è eccessivamente complicato? Sembra la prima scelta per la tua implementazione. Decisamente meno complicato di qualcosa come l'analisi dei risultati di ricerca HTML ... –

+2

a google non piace nulla che cerchi di ignorare la loro api, quindi se tenterai di fare richieste dirette e di analizzare i risultati - il tuo host potrebbe essere bannato. – Cheery

risposta

3

se vi volete ottenere risultati video, allora si può provare questo.

//replace space between words with + 
$query = "cat+video"; 
$start = 0; 
/* 
this url will give you json response with 4 results each time. 
u have to change the $start like 0, 4, 8,... 
use json_decode() and get it in array 
*/ 

$url = 'https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q='.$query.'&start='.$start 

spero che sia utile.

Problemi correlati