Google Site Search offers a JSON API allowing you to query Google Search results from your app. You can query web search results and image search and the results can be requested in both JSON and ATOM (XML) formats.
This Google Apps Script snippet shows you can use the JSON API to fetch Google Search results in a Google Spreadsheet programmatically. You can only make a limited number of API call with the free edition of Site Search (100 queries per day) but the Google Search Scraper is also an alternative.
function getGoogleSearchResults(q) {
// Get the API key from Google's developer console
// Get the CSE ID from google.com/cse
var api = 'https://www.googleapis.com/customsearch/v1?key=' + KEY + '&cx=' + CSE + '&q=' + encodeURIComponent(q);
try {
var response = UrlFetchApp.fetch(api, {
muteHttpExceptions: true,
});
if (response.getResponseCode() == 200) {
var content = JSON.parse(response);
// Did the search return any results?
if (content.searchInformation.totalResults > 0) {
var count = content.items.length;
for (var i = 0; i < count; i++) {
// Save the page title, description and hyperlink
Logger.log(content.items[i].title);
Logger.log(content.items[i].snippet);
Logger.log(content.items[i].link);
}
}
}
} catch (f) {
Logger.log(f.toString());
}
}