import requests
import sys
# get the API KEY here: https://developers.google.com/custom-search/v1/overview
API_KEY ="<INSERT_YOUR_API_KEY_HERE>"# get your Search Engine ID on your CSE control panel
SEARCH_ENGINE_ID ="<INSERT_YOUR_SEARCH_ENGINE_ID_HERE>"# the search query you want, from the command line (e.g python search_engine.py 'python')try:
query = sys.argv[1]except:print("Please specify a search query")
exit()try:
page =int(sys.argv[2])# make sure page is positiveassert page >0except:print("Page number isn't specified, defaulting to 1")
page =1# constructing the URL# doc: https://developers.google.com/custom-search/v1/using_rest# calculating start, (page=2) => (start=11), (page=3) => (start=21)
start =(page -1)*10+1
url =f"https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}&start={start}"# make the API request
data = requests.get(url).json()# get the result items
search_items = data.get("items")# iterate over 10 results foundfor i, search_item inenumerate(search_items, start=1):try:
long_description = search_item["pagemap"]["metatags"][0]["og:description"]except KeyError:
long_description ="N/A"# get the page title
title = search_item.get("title")# page snippet
snippet = search_item.get("snippet")# alternatively, you can get the HTML snippet (bolded keywords)
html_snippet = search_item.get("htmlSnippet")# extract the page url
link = search_item.get("link")# print the resultsprint("="*10,f"Result #{i+start-1}","="*10)print("Title:", title)print("Description:", snippet)print("Long description:", long_description)print("URL:", link,"\n")