Прежде всего, вам нужно убедиться, что вы сгенерировали свой ключ API и CX.Я предполагаю, что вы уже сделали это, в противном случае вы можете сделать это в следующих местах:
- Ключ API (вам необходимо создать новый ключ браузера)
- CX (вам нужно создать собственную поисковую систему)
Если у вас есть такие, вот простое консольное приложение, которое выполняет поиск и выводит все заголовки / ссылки:
static void Main(string[] args)
{
WebClient webClient = new WebClient();
string apiKey = "YOUR KEY HERE";
string cx = "YOUR CX HERE";
string query = "YOUR SEARCH HERE";
string result = webClient.DownloadString(String.Format("https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}&alt=json", apiKey, cx, query));
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> collection = serializer.Deserialize<Dictionary<string, object>>(result);
foreach (Dictionary<string, object> item in (IEnumerable)collection["items"])
{
Console.WriteLine("Title: {0}", item["title"]);
Console.WriteLine("Link: {0}", item["link"]);
Console.WriteLine();
}
}
Как видите, я использую обобщенную десериализацию JSON в словарь вместо строгой типизации.Это для удобства, так как я не хочу создавать класс, который реализует схему результатов поиска.При таком подходе полезной нагрузкой является вложенный набор пар ключ-значение.Больше всего вас интересует коллекция предметов, которая является результатом поиска (я полагаю, первая страница).Я только получаю доступ к свойствам "title" и "link", но их гораздо больше, чем вы можете увидеть в документации или проверить в отладчике.