Google Search API - количество результатов - PullRequest
8 голосов
/ 20 ноября 2010

Всякий раз, когда вы выполняете поиск в Google, он выплевывает этот маленький фрагмент информации

"Около 8 110 000 результатов (0,10 секунд)"

Я использую количество результатов, возвращаемых определенными терминамиранжировать их друг против друга, поэтому, если бы я мог получить это целое число - 8 110 000 - через API, это было бы очень полезно.Некоторые API Google недавно были объявлены устаревшими, поэтому, если бы вы могли указать мне на тот, который не устарел, это было бы очень полезно.

Любые другие обходные пути также будут высоко оценены.Я видел одно или два старых сообщения на похожие темы, но ни одно из них не было успешно решено.

1 Ответ

5 голосов
/ 30 ноября 2010

Завершено с использованием 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();
                }

            }
        }
    }
}
...