Domanda

Devo fornire una parola chiave come " bollitore di metallo blu " (con / senza virgolette) e ottieni solo il numero di risultati trovati per questa ricerca. Se cerco senza virgolette in questo momento, ottengo:

 Results 1 - 10 of about 1,040,000 for blue metal kettle. (0.19 seconds)

Qui "1.040.000" è il numero che desidero. C'è qualche funzione API per fare questo, o devo estrarre questo numero attraverso l'HTML? Qual è il modo migliore per farlo?

È stato utile?

Soluzione

Dall'API Ajax di Google, esiste una proprietà stimataResultsCount in JSON, ma puoi leggere i reclami non risolti archiviati nel tracker dei problemi:

  

Il conteggio dei risultati varia
   http://code.google.com/p/ google-ajax-API / emissioni / dettaglio? id = 32

(vedo che la domanda è taggata con PHP, ma javascript sul lato client insieme potrebbe essere interessante.)

Altri suggerimenti

Puoi schermarlo raschiandolo. Qualcosa del tipo:

$keywords = "blue metal kettle";
$html = file_get_contents("http://www.google.com/?q=" . rawurlencode($keywords));
preg_match('/Results 1 - \d+ of about ([0-9,]+) for/', $html, $reg);
var_dump($reg[1]);

Se lo usi in un'applicazione, probabilmente violeresti i termini di utilizzo di Google.

Google ha chiuso l'API per uso pubblico qualche tempo fa. Se si desidera utilizzare un'API supportata, consultare l'API bing che fornisce questo come parte dei risultati. Altrimenti, stai per raschiare l'HTML. Tieni presente che hai mostrato la formattazione per noi / numeri inglesi. La formattazione varierà su altri siti di Google e / o sulle impostazioni del tuo profilo e / o sulle impostazioni del tuo browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top