Skip to content

Instantly share code, notes, and snippets.

@willinspire
Created September 16, 2018 14:05
Show Gist options
  • Save willinspire/3ed82b77ff6b2a7b47d1beb93e7a0092 to your computer and use it in GitHub Desktop.
Save willinspire/3ed82b77ff6b2a7b47d1beb93e7a0092 to your computer and use it in GitHub Desktop.
Google Search Recommendations API -- (Bash Shell Script)
#! /bin/bash
################################################################################
#
# gsrapi.sh
# Google Search Recommendations API -- Bash Library
# This script was created by h8rt3rmin8r on 20180916
# Built for use by ResoNova International Consulting, LLC (ResoNova.com)
#
# BASIC USAGE:
# Make this script executable and pass a query to the script...
# ./gsrapi.sh "bitcoin"
#
# ADVANCED USAGE:
# Feel free to customize this script to work with whatever you want.
# Most common queries can be satisfied with the following...
# curl -s "${SQR1}${SQPL19}&${SQPC02}&${SQEI01}&${SQEX01}&${SQ}$@"
#
# ADDITIONAL INFORMATION:
# bit.ly/google-search-api
# http://bit.ly/google-search-docs
# https://stackoverflow.com/questions/5102878/
# https://pastebin.com/raw/ZWmzs7Vx
# https://pastebin.com/raw/UNx9TDhB
#
# DOWNLOAD SOURCE: https://pastebin.com/raw/Rq16G3V5
#
################################################################################
#
## API ENDPOINT ROOTS
#
################################################################################
SQR="google.com/complete/search?"
SQR0="http://suggestqueries.${SQR}"
SQR1="http://clients1.${SQR}"
SQR2="http://clients2.${SQR}"
SQR3="http://clients3.${SQR}"
SQR4="http://clients4.${SQR}"
SQR5="http://clients5.${SQR}"
################################################################################
#
## REQUEST PARAMETERS
#
################################################################################
SQ='q='
## Encoding Selection
SQEI='inputencoding='
SQEI01='inputencoding=UTF-8'
SQEX='outputencoding='
SQEX01='outputencoding=UTF-8'
## Client & Output Types
SQPC='client='
SQPC01='client=chrome'
SQPC02='client=firefox'
SQX='output='
SQX01='output=toolbar'
SQX02='output=chrome'
SQX03='output=firefox'
## Language Specification - https://pastebin.com/raw/ZWmzs7Vx
SQPL='hl='
SQPL01='hl=af'
SQPL02='hl=sq'
SQPL03='hl=sm'
SQPL04='hl=ar'
SQPL05='hl=az'
SQPL06='hl=eu'
SQPL07='hl=be'
SQPL08='hl=bn'
SQPL09='hl=bh'
SQPL10='hl=bs'
SQPL11='hl=bg'
SQPL12='hl=ca'
SQPL13='hl=zh-CN'
SQPL14='hl=zh-TW'
SQPL15='hl=hr'
SQPL16='hl=cs'
SQPL17='hl=da'
SQPL18='hl=nl'
SQPL19='hl=en'
SQPL20='hl=eo'
SQPL21='hl=et'
SQPL22='hl=fo'
SQPL23='hl=fi'
SQPL24='hl=fr'
SQPL25='hl=fy'
SQPL26='hl=gl'
SQPL27='hl=ka'
SQPL28='hl=de'
SQPL29='hl=el'
SQPL30='hl=gu'
SQPL31='hl=iw'
SQPL32='hl=hi'
SQPL33='hl=hu'
SQPL34='hl=is'
SQPL35='hl=id'
SQPL36='hl=ia'
SQPL37='hl=ga'
SQPL38='hl=it'
SQPL39='hl=ja'
SQPL40='hl=jw'
SQPL41='hl=kn'
SQPL42='hl=ko'
SQPL43='hl=la'
SQPL44='hl=lv'
SQPL45='hl=lt'
SQPL46='hl=mk'
SQPL47='hl=ms'
SQPL48='hl=ml'
SQPL49='hl=mt'
SQPL50='hl=mr'
SQPL51='hl=ne'
SQPL52='hl=no'
SQPL53='hl=nn'
SQPL54='hl=oc'
SQPL55='hl=fa'
SQPL56='hl=pl'
SQPL57='hl=pt-BR'
SQPL58='hl=pt-PT'
SQPL59='hl=pa'
SQPL60='hl=ro'
SQPL61='hl=ru'
SQPL62='hl=gd'
SQPL63='hl=sr'
SQPL64='hl=si'
SQPL65='hl=sk'
SQPL66='hl=sl'
SQPL67='hl=es'
SQPL68='hl=su'
SQPL69='hl=sw'
SQPL70='hl=sv'
SQPL71='hl=tl'
SQPL72='hl=ta'
SQPL73='hl=te'
SQPL74='hl=th'
SQPL75='hl=ti'
SQPL76='hl=tr'
SQPL77='hl=uk'
SQPL78='hl=ur'
SQPL79='hl=uz'
SQPL80='hl=vi'
SQPL81='hl=cy'
SQPL82='hl=xh'
SQPL83='hl=zu'
# Geographic Location - https://pastebin.com/raw/UNx9TDhB
SQPG='gl'
SQPG01='gl=af'
SQPG02='gl=al'
SQPG03='gl=dz'
SQPG04='gl=as'
SQPG05='gl=ad'
SQPG06='gl=ao'
SQPG07='gl=ai'
SQPG08='gl=aq'
SQPG09='gl=ag'
SQPG10='gl=ar'
SQPG11='gl=am'
SQPG12='gl=aw'
SQPG13='gl=au'
SQPG14='gl=at'
SQPG15='gl=az'
SQPG16='gl=bs'
SQPG17='gl=bh'
SQPG18='gl=bd'
SQPG19='gl=bb'
SQPG20='gl=by'
SQPG21='gl=be'
SQPG22='gl=bz'
SQPG23='gl=bj'
SQPG24='gl=bm'
SQPG25='gl=bt'
SQPG26='gl=bo'
SQPG27='gl=ba'
SQPG28='gl=bw'
SQPG29='gl=bv'
SQPG30='gl=br'
SQPG31='gl=io'
SQPG32='gl=bn'
SQPG33='gl=bg'
SQPG34='gl=bf'
SQPG35='gl=bi'
SQPG36='gl=kh'
SQPG37='gl=cm'
SQPG38='gl=ca'
SQPG39='gl=cv'
SQPG40='gl=ky'
SQPG41='gl=cf'
SQPG42='gl=td'
SQPG43='gl=cl'
SQPG44='gl=cn'
SQPG45='gl=cx'
SQPG46='gl=cc'
SQPG47='gl=co'
SQPG48='gl=km'
SQPG49='gl=cg'
SQPG50='gl=cd'
SQPG51='gl=ck'
SQPG52='gl=cr'
SQPG53='gl=ci'
SQPG54='gl=hr'
SQPG55='gl=cu'
SQPG56='gl=cy'
SQPG57='gl=cz'
SQPG58='gl=dk'
SQPG59='gl=dj'
SQPG60='gl=dm'
SQPG61='gl=do'
SQPG62='gl=ec'
SQPG63='gl=eg'
SQPG64='gl=sv'
SQPG65='gl=gq'
SQPG66='gl=er'
SQPG67='gl=ee'
SQPG68='gl=et'
SQPG69='gl=fk'
SQPG70='gl=fo'
SQPG71='gl=fj'
SQPG72='gl=fi'
SQPG73='gl=fr'
SQPG74='gl=gf'
SQPG75='gl=pf'
SQPG76='gl=tf'
SQPG77='gl=ga'
SQPG78='gl=gm'
SQPG79='gl=ge'
SQPG80='gl=de'
SQPG81='gl=gh'
SQPG82='gl=gi'
SQPG83='gl=gr'
SQPG84='gl=gl'
SQPG85='gl=gd'
SQPG86='gl=gp'
SQPG87='gl=gu'
SQPG88='gl=gt'
SQPG89='gl=gn'
SQPG90='gl=gw'
SQPG91='gl=gy'
SQPG92='gl=ht'
SQPG93='gl=hm'
SQPG94='gl=va'
SQPG95='gl=hn'
SQPG96='gl=hk'
SQPG97='gl=hu'
SQPG98='gl=is'
SQPG99='gl=in'
SQPG100='gl=id'
SQPG101='gl=ir'
SQPG102='gl=iq'
SQPG103='gl=ie'
SQPG104='gl=il'
SQPG105='gl=it'
SQPG106='gl=jm'
SQPG107='gl=jp'
SQPG108='gl=jo'
SQPG109='gl=kz'
SQPG110='gl=ke'
SQPG111='gl=ki'
SQPG112='gl=kp'
SQPG113='gl=kr'
SQPG114='gl=kw'
SQPG115='gl=kg'
SQPG116='gl=la'
SQPG117='gl=lv'
SQPG118='gl=lb'
SQPG119='gl=ls'
SQPG120='gl=lr'
SQPG121='gl=ly'
SQPG122='gl=li'
SQPG123='gl=lt'
SQPG124='gl=lu'
SQPG125='gl=mo'
SQPG126='gl=mk'
SQPG127='gl=mg'
SQPG128='gl=mw'
SQPG129='gl=my'
SQPG130='gl=mv'
SQPG131='gl=ml'
SQPG132='gl=mt'
SQPG133='gl=mh'
SQPG134='gl=mq'
SQPG135='gl=mr'
SQPG136='gl=mu'
SQPG137='gl=yt'
SQPG138='gl=mx'
SQPG139='gl=fm'
SQPG140='gl=md'
SQPG141='gl=mc'
SQPG142='gl=mn'
SQPG143='gl=ms'
SQPG144='gl=ma'
SQPG145='gl=mz'
SQPG146='gl=mm'
SQPG147='gl=na'
SQPG148='gl=nr'
SQPG149='gl=np'
SQPG150='gl=nl'
SQPG151='gl=an'
SQPG152='gl=nc'
SQPG153='gl=nz'
SQPG154='gl=ni'
SQPG155='gl=ne'
SQPG156='gl=ng'
SQPG157='gl=nu'
SQPG158='gl=nf'
SQPG159='gl=mp'
SQPG160='gl=no'
SQPG161='gl=om'
SQPG162='gl=pk'
SQPG163='gl=pw'
SQPG164='gl=ps'
SQPG165='gl=pa'
SQPG166='gl=pg'
SQPG167='gl=py'
SQPG168='gl=pe'
SQPG169='gl=ph'
SQPG170='gl=pn'
SQPG171='gl=pl'
SQPG172='gl=pt'
SQPG173='gl=pr'
SQPG174='gl=qa'
SQPG175='gl=re'
SQPG176='gl=ro'
SQPG177='gl=ru'
SQPG178='gl=rw'
SQPG179='gl=sh'
SQPG180='gl=kn'
SQPG181='gl=lc'
SQPG182='gl=pm'
SQPG183='gl=vc'
SQPG184='gl=ws'
SQPG185='gl=sm'
SQPG186='gl=st'
SQPG187='gl=sa'
SQPG188='gl=sn'
SQPG189='gl=cs'
SQPG190='gl=sc'
SQPG191='gl=sl'
SQPG192='gl=sg'
SQPG193='gl=sk'
SQPG194='gl=si'
SQPG195='gl=sb'
SQPG196='gl=so'
SQPG197='gl=za'
SQPG198='gl=gs'
SQPG199='gl=es'
SQPG200='gl=lk'
SQPG201='gl=sd'
SQPG202='gl=sr'
SQPG203='gl=sj'
SQPG204='gl=sz'
SQPG205='gl=se'
SQPG206='gl=ch'
SQPG207='gl=sy'
SQPG208='gl=tw'
SQPG209='gl=tj'
SQPG210='gl=tz'
SQPG211='gl=th'
SQPG212='gl=tl'
SQPG213='gl=tg'
SQPG214='gl=tk'
SQPG215='gl=to'
SQPG216='gl=tt'
SQPG217='gl=tn'
SQPG218='gl=tr'
SQPG219='gl=tm'
SQPG220='gl=tc'
SQPG221='gl=tv'
SQPG222='gl=ug'
SQPG223='gl=ua'
SQPG224='gl=ae'
SQPG225='gl=uk'
SQPG226='gl=us'
SQPG227='gl=um'
SQPG228='gl=uy'
SQPG229='gl=uz'
SQPG230='gl=vu'
SQPG231='gl=ve'
SQPG232='gl=vn'
SQPG233='gl=vg'
SQPG234='gl=vi'
SQPG235='gl=wf'
SQPG236='gl=eh'
SQPG237='gl=ye'
SQPG238='gl=zm'
SQPG239='gl=zw'
################################################################################
## REQUEST PROCESSING
################################################################################
SQ_01=$(echo -n "${SQR1}${SQPL19}&${SQPC02}&${SQEI01}&${SQEX01}&${SQ}")
INPUTS=$(echo "$@" | sed 's/ /+/g')
curl -s "${SQ_01}${INPUTS}"
################################################################################
# #
# "think outside the box" #
# #
# ($) ¯\_(ツ)_/¯ (฿) #
# #
#############################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment