Goo
Google provides a custom search API by which you can use the power of google search engine in your own application. The base URL for the REST version of custom search API is:
https://www.googleapis.com/customsearch/v1
Before moving on to integration part, we need two things.
- API KEY
- Search Engine ID
The API KEY can be created by tapping the GET A KEY button and creating a new project at the following link:
https://developers.google.com/custom-search/json-api/v1/introduction
The next step is the search engine ID. You need to create an instance of a search engine at:
https://cse.google.com/
- Here you need to add a new instance, give the name of the engine, any website and just create it for now.
- Now go to its control panel and in the basic options > Sites to search, you have the option to search the entire web (with emphasis on some websites if you want to include some) or search only for some websites (should be included in list, patterns can also be included).
- Configure it as per your choice and in Details section you will find the search engine ID by clicking on the Search Engine ID button.
Now you are ready to integrate. The code to integrate the API using Express and Node JS is:
var express = require(‘express’);
var path = require(‘path’);
var app = express();
var request = require(‘request’);
// The main search function
var google_web_search = function(search, callback) {
console.log(‘Searching the web for: ‘, search);
var options = {
method: ‘GET’,
url: ‘https://www.googleapis.com/customsearch/v1’,
qs: {
q: search,
key: ‘<API_KEY>’,
cx: ‘<SEARCH_ENGINE_ID>’,
}
};
request(options, function (error, response, body) {
callback(error, body);
});
};
app.get(‘/’, function (req, res) {
google_web_search(‘<YOUR_SEARCH_QUERY>’, function(error, body) {
if (!error) {
res.send(body);
} else {
throw new Error(error);
}
});
});
app.listen(3000, function () {
console.log(‘Example app listening on port 3000!’);
});
If you want more results, then you can use pagination by adding two query params:
- num: specifies the number of results to return in the response
- start: specifies the number of results to skip
gle provides a custom search API by which you can use the power of google search engine in your own application. The base URL for the REST version of custom search API is:
https://www.googleapis.com/customsearch/v1
Before moving on to integration part, we need two things.
1. API KEY
2. Search Engine ID
The API KEY can be created by tapping the GET A KEY button and creating a new project at the following link:
https://developers.google.com/custom-search/json-api/v1/introduction
The next step is the search engine ID. You need to create an instance of a search engine at:
https://cse.google.com/
1. Here you need to add a new instance, give the name of the engine, any website and just create it for now.
2. Now go to its control panel and in the basic options > Sites to search, you have the option to search the entire web (with emphasis on some websites if you want to include some) or search only for some websites (should be included in list, patterns can also be included).
3. Configure it as per your choice and in Details section you will find the search engine ID by clicking on the Search Engine ID button.
Now you are ready to integrate. The code to integrate the API using Express and Node JS is:
var express = require('express'); var path = require('path'); var app = express(); var request = require('request'); // The main search function var google_web_search = function(search, callback) { console.log('Searching the web for: ', search); var options = { method: 'GET', url: 'https://www.googleapis.com/customsearch/v1', qs: { q: search, key: '<API_KEY>', cx: '<SEARCH_ENGINE_ID>', } }; request(options, function (error, response, body) { callback(error, body); }); }; app.get('/', function (req, res) { google_web_search('<YOUR_SEARCH_QUERY>', function(error, body) { if (!error) { res.send(body); } else { throw new Error(error); } }); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
If you want more results, then you can use pagination by adding two query params:
1. num: specifies the number of results to return in the response
2. start: specifies the number of results to skip
Comments
One response to “Google Custom Search with NodeJS”
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.