2010-11-20 25 views
7

Siempre que realice una búsqueda en Google, que escupe este pequeño fragmento de informaciónGoogle API de búsqueda - Número de Resultados

"Cerca de 8.110.000 resultados (0.10 segundos)"

estoy usando el número de resultados ciertos términos vuelven a clasificarlos uno contra el otro, por lo que si pudiera obtener este entero (8.110.000) a través de la API, sería muy útil. Algunas API de Google se han desaprobado recientemente, por lo que si pudiera indicarme el correcto que no está en desuso, sería muy útil.

Cualquier otra solución alternativa también sería muy apreciada. He visto una o dos publicaciones antiguas sobre temas similares, pero ninguna parecía resolverse con éxito.

+2

sería agradable ver a una solución de Google también :) – UpTheCreek

+0

no pude encuentre una API de Google o una página que muestre la cantidad total de resultados; por supuesto, podría raspar la página web en lugar de la API, pero eso generalmente es desaprobado y mi aplicación era para un teléfono, por lo que habría sido un recurso intensivo. – varunsrin

Respuesta

4

Completado utilizando Bing en lugar de Google y con el siguiente código:

string baseURL = "http://api.search.live.net/xml.aspx?Appid=<MyAppID>&query=%22" + name + "%22&sources=web"; 
WebClient c = new WebClient(); 
c.DownloadStringAsync(new Uri(baseURL)); 
c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(findTotalResults); 

y esto exige findTotalResults:

void findTotalResults(object sender, DownloadStringCompletedEventArgs e) 
{ 
    lock (this) 
    { 
     string s = e.Result; 
     XmlReader reader = XmlReader.Create(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(s))); 
     while (reader.Read()) 
     { 
      if (reader.NodeType == XmlNodeType.Element) 
      { 
       if (reader.Name.Equals("web:Total")) 
       { 
        gResults = reader.ReadInnerXml(); 
       } 

      } 
     } 
    } 
} 
Cuestiones relacionadas