2010-11-20 18 views
7

Jedes Mal, wenn Sie eine Google-Suche durchführen, spuckt es diesen kleinen Schnipsel von Informationen ausGoogle Search API - Anzahl gefunden

„über 8.110.000 Ergebnisse (0,10 Sekunden)“

Ich verwende die Anzahl der Ergebnisse bestimmte Terme kehren zurück, um sie gegeneinander einzustufen. Wenn ich also diese ganze Zahl - 8.110.000 - über die API erhalten könnte, wäre das sehr hilfreich. Einige Google APIs wurden kürzlich als veraltet eingestuft. Wenn Sie also auf die richtige Google-API verweisen könnten, die nicht veraltet ist, wäre dies sehr hilfreich.

Alle anderen Problemumgehungen würden ebenfalls sehr geschätzt werden. Ich habe ein oder zwei alte Beiträge zu ähnlichen Themen gesehen, aber keine schien erfolgreich gelöst zu sein.

+2

Wäre schön, eine Google-Lösung sehen :) – UpTheCreek

+0

kann ich nicht Suchen Sie nach einer Google API oder Seite, auf der die Gesamtzahl der Ergebnisse angezeigt wird. Natürlich können Sie die Webseite statt der API scrappen, aber das ist im Allgemeinen verpönt und meine App war für ein Telefon, das wäre also nur ressourcenintensiv gewesen. – varunsrin

Antwort

4

Abgeschlossen mit Bing statt Google und mit dem folgenden Code:

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

und dies ruft findTotalResults: zu

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

      } 
     } 
    } 
}