2010-11-20 273 views
7

每當你執行一個谷歌搜索的數目,它吐出來將這些信息片段谷歌搜索API - 結果

「關於8110000結果(0.10秒),」

我使用結果的數量某些條款返回將它們排在對方之後,所以如果我能通過API得到這個整數(8,110,000),那將會非常有幫助。一些Google API最近已被棄用,所以如果你能指出我沒有被棄用的正確的,那將是非常有幫助的。

任何其他解決方法也將不勝感激。我看過一兩個關於類似主題的舊帖子,但似乎沒有一個能夠成功解決。

+2

會很高興地看到谷歌解決方案太:) – UpTheCreek 2011-03-25 13:38:04

+0

我做不到找到暴露總結果數量的Google API或頁面 - 當然,您可以刮掉網頁而不是API,但通常會皺眉,而我的應用是用於手機的,所以這只是資源密集型的。 – varunsrin 2011-04-16 07:23:34

回答

4

使用,而不是谷歌,並與下面的代碼完成兵:

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

,這就要求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(); 
       } 

      } 
     } 
    } 
}