Programmatically searching Google (Part 1): The Google API for .NET
Posted by Kash Farooq on January 24, 2011
Also see Programmatically searching Google (Part 2): Using the RESTful interface
I needed to do some web searches and record the host names that I found, so I started investigating what APIs Google exposed.
I found the “Google APIs for .NET Framework” hosted on Google Code. There hasn’t been much activity on this project recently – the last release was April 2010 – and there is not much documentation, but it works and it is simple to use.
It provides two sets of libraries: one that wraps Google Search and one that wraps Google Translate.
Here is an example of a search:
public void SearchForSomethingUsingLib() {
var client = new GwebSearchClient("http://mywebsite.com");
var results = client.Search("google api for .NET", 100);
foreach (var webResult in results) {
Console.WriteLine("{0}, {1}, {2}", webResult.Title, webResult.Url, webResult.Content);
}
}
The ’100′ in the above example indicates the number of search results to return.
What puzzled me was that the set of results returned didn’t appear to have a concept of paging, and the library didn’t seem to have a “Search Paged” method. What if I had asked for 1000000 results? Surely the API wasn’t going to get 1000000 results in one go and load them all into a List?
I fired up reflector. The API definitely returned a straight forward generic list. No delayed execution – one Web Request sent to Google, followed by one “new List<T>” to return the results.
I needed to investigate further, and I’ll look at that in Part 2.