2010-11-20 9 views
7

Chaque fois que vous effectuez une recherche sur Google, il crache sur ce petit bout de l'infoGoogle Search API - Nombre de résultats

« A propos 8.110.000 résultats (0.10 secondes) »

J'utilise le nombre de résultats certains termes reviennent à les classer les uns par rapport aux autres, donc si je pouvais obtenir cet entier - 8 110 000 - via l'API, ce serait très utile. Certaines API de Google ont récemment été abandonnées, donc si vous pouviez me pointer vers la bonne qui n'est pas obsolète, ce serait très utile.

Toute autre solution de contournement serait également très appréciée. J'ai vu un ou deux anciens messages sur des sujets similaires, mais aucun ne semblait avoir été résolu avec succès.

+2

serait agréable de voir une solution Google aussi :) Je ne pouvais pas – UpTheCreek

+0

trouver une API Google ou une page exposant le nombre total de résultats - bien sûr, vous pouvez gratter la page Web au lieu de l'API, mais cela est généralement désapprouvé et mon application était pour un téléphone, ce qui aurait nécessité beaucoup de ressources. – varunsrin

Répondre

4

terminés à l'aide Bing au lieu de Google et avec le code suivant:

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); 

ce qui appelle 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(); 
       } 

      } 
     } 
    } 
} 
Questions connexes