I used the Serpapi google map scraping code but it gives me a traceback error

Viewed 420

The error I get is a Traceback error, line 25, for result in data ['ads']: Keyerror: 'ads'

The code is what I have posted below:

from serpapi.google_search_results import GoogleSearchResults

params = {
    "engine": "google_maps",
    "q": "coffee",
    "google_domain": "google.com",
    "type": "search",
    "ll": "@40.7455096,-74.0083012,14z",
}

client = GoogleSearchResults(params)
data = client.get_dict()

print("Local results")

for result in data['local_results']:
  print(f"""Title: {result['title']}
Address: {result['address']}
Rating: {result['rating']}
Reviews: {result['reviews']}
""")

print("Ads")

for result in data['ads']:
  print(f"""Title: {result['title']}
Address: {result['address']}
""")
1 Answers

KeyError generally means that the key doesn't exist. So to fix the issue we just have to make sure that it does.

if key in data:

Working code example: https://repl.it/@MilosDjurdjevi1/GoogleMaps

from serpapi import GoogleSearch

params = {
    "engine": "google_maps",
    "q": "coffee",
    "google_domain": "google.com",
    "type": "search",
    "ll": "@40.7455096,-74.0083012,14z",
}

client = GoogleSearch(params)
data = client.get_dict()

print("Local results")

for result in data['local_results']:
  print(f"""Title: {result['title']}
Address: {result['address']}
Rating: {result['rating']}
Reviews: {result['reviews']}
""")

if 'ads' in data:
  print("Ads")

  for result in data['ads']:
    print(f"""Title: {result['title']}
  Address: {result['address']}
  """)
Related