8

每当您执行 Google 搜索时,它都会吐出一小段信息

“大约 8,110,000 个结果(0.10 秒)”

我正在使用某些术语返回的结果数量来对它们进行相互排名,所以如果我可以通过 API 获得这个整数 - 8,110,000 - 这将非常有帮助。一些 Google API 最近已被弃用,因此如果您能指出正确的未被弃用的 API,那将非常有帮助。

任何其他解决方法也将不胜感激。我看过一两篇关于类似主题的旧帖子,但似乎都没有成功解决。

4

1 回答 1

5

使用 Bing 而不是 Google 并使用以下代码完成:

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

            }
        }
    }
}
于 2010-11-30T04:42:52.033 回答