UNPKG

google-it

Version:

A CLI and Node.js library to help retrieve, display, and store Google search results

67 lines (47 loc) 3.35 kB
# google-it [![Build Status](https://travis-ci.org/PatNeedham/google-it.svg?branch=master)](https://travis-ci.org/PatNeedham/google-it) [![npm version](https://badge.fury.io/js/google-it.svg)](https://www.npmjs.com/package/google-it) [![Codecov Coverage](https://img.shields.io/codecov/c/github/PatNeedham/google-it/master.svg?style=flat-square)](https://codecov.io/gh/PatNeedham/google-it/) [![Maintainability](https://api.codeclimate.com/v1/badges/fe8329b7641ea86326e4/maintainability)](https://codeclimate.com/github/PatNeedham/google-it/maintainability) A simple library to convert Google search results to JSON output, with an interactive display option coming in the near future. ## Install `$ npm install --save -g google-it` ## Example Usage `$ google-it --query="Latvian unicorn"` ![GIF of google-it](./images/google-it-demo.gif?raw=true "google-it") Prevent display in the terminal, and save results to a JSON file: `$ google-it --query="PWAs with react-router and redux" -o results.json -n` ![GIF of google-it w/o display, results saved to file](./images/google-it-output-no-display.gif?raw=true "google-it") `$ google-it --query="open whisper systems" -O 5` ![GIF of opening-in-browser](./images/open-results-in-browser.gif?raw=true "google-it-to-browser") `$ google-it --query="mechanical turk" --only-urls` ![Screenshot of only-urls option](./images/onlyUrls.png?raw=true "onlyUrls") ### Command Line Arguments - [x] *query* - the query that should be sent to the Google search - [x] *output* - name of the JSON file to save results to - [x] *no-display* - prevent results from appearing in the terminal output. Should only be used with --output (-o) command when saving results to a file - [ ] *save* - name of the html file if you want to save the actual response from the html request (useful for debugging purposes) - [x] *limit* - number of search results to be returned - [x] *only-urls* - only display the URLs, instead of the titles and snippets - [ ] *verbose* - console.log useful statements to show what's currently taking place - [ ] *interactive* - once results are returned, show them in an interactive prompt where user can scroll through them - [ ] *bold-matching-text* - only takes effect when interactive (-i) flag is set as well, will bold test in results that matched the query - [x] *includeSites* - option to limit results to comma-separated list of sites - [x] *excludeSites* - option to exclude results that appear in comma-separated list of sites - [x] *open* - opens the first X number of results in the browser after finishing query - [x] *disableConsole* - intended to be used with programmatic use, so that the color-coded search results are not displayed in the terminal (via console.log) when not wanted. ### Programmatic Use in NodeJS environment - [x] something like: ```js const googleIt = require('google-it') googleIt({'query': 'covfefe irony'}).then(results => { // access to results object here }).catch(e => { // any possible errors that might have occurred (like no Internet connection) }) // with request options const options = { 'proxy': 'http://localhost:8118' }; googleIt({options, 'query': 'covfefe irony'}).then(results => { // access to results object here }).catch(e => { // any possible errors that might have occurred (like no Internet connection) }) ```