antfraia commited on
Commit
dc8e36b
·
1 Parent(s): 1819e0b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -50
app.py CHANGED
@@ -1,62 +1,45 @@
1
  import streamlit as st
2
- import requests
3
 
4
- SERPAPI_ENDPOINT = "https://serpapi.com/search"
5
- API_KEY = "b18f4d37042ab8222028830ee1d3db47481ac48f545382eacd7f0469414f1b1a"
 
6
 
7
- def fetch_google_maps_place_id(query):
8
  params = {
 
9
  "engine": "google_maps",
10
- "q": query,
11
- "api_key": API_KEY,
12
- "output": "json"
 
13
  }
14
 
15
- response = requests.get(SERPAPI_ENDPOINT, params=params)
 
 
 
16
 
17
- if response.status_code == 200:
18
- data = response.json()
19
- # Extract the place_id from the JSON. You might need to adjust based on the actual structure of the returned JSON.
20
- place_id = data.get("place_id", None)
21
- return place_id
22
- else:
23
- st.warning("Failed to fetch data from SerpAPI")
24
- return None
25
 
26
- def fetch_google_maps_reviews(place_id, hl="en"):
27
- params = {
28
- "engine": "google_maps_reviews",
29
- "place_id": place_id,
30
- "hl": hl,
31
- "api_key": API_KEY,
32
- "output": "json"
33
- }
34
 
35
- response = requests.get(SERPAPI_ENDPOINT, params=params)
36
-
37
- if response.status_code == 200:
38
- return response.json()
39
- else:
40
- st.warning("Failed to fetch reviews from SerpAPI")
41
- return None
42
 
43
- def main():
44
- st.title("Google Maps Reviews Fetcher")
45
 
46
- # User input
47
- query = st.text_input("Enter a Google Maps place (e.g., 'Starbucks near Times Square'):")
48
-
49
- if st.button("Start"):
50
- # Fetch the place_id first
51
- place_id = fetch_google_maps_place_id(query)
52
-
53
- # If place_id was successfully fetched, then get the reviews
54
- if place_id:
55
- reviews = fetch_google_maps_reviews(place_id)
56
- if reviews:
57
- st.json(reviews)
58
- else:
59
- st.warning("Couldn't fetch the place_id. Please try again or refine your query.")
60
-
61
- if __name__ == "__main__":
62
- main()
 
1
  import streamlit as st
2
+ from serpapi import GoogleSearch
3
 
4
+ def fetch_google_maps_results(query=None, location=None, search_type="search"):
5
+ if not query and not location:
6
+ raise ValueError("Either 'query' or 'location' must be provided.")
7
 
 
8
  params = {
9
+ "api_key": "YOUR_API_KEY",
10
  "engine": "google_maps",
11
+ "type": search_type,
12
+ "google_domain": "google.it",
13
+ "hl": "it",
14
+ "gl": "it"
15
  }
16
 
17
+ if query:
18
+ params["q"] = query
19
+ if location:
20
+ params["ll"] = location
21
 
22
+ search = GoogleSearch(params)
23
+ results = search.get_dict()
24
+ return results
 
 
 
 
 
25
 
26
+ st.title("Google Maps API Search via SerpAPI")
27
+ st.write("Enter a search query or a geographic location to fetch results from Google Maps.")
 
 
 
 
 
 
28
 
29
+ # Input fields
30
+ search_type = st.selectbox("Select Search Type:", ["search", "place"])
31
+ query = st.text_input("Search Query (q): (Use for regular Google Maps search)")
 
 
 
 
32
 
33
+ location = st.text_input("Geographic Location (ll): (Format: '@latitude,longitude,zoom')")
 
34
 
35
+ # Button to trigger the API call
36
+ if st.button("Search"):
37
+ if not query and not location:
38
+ st.error("Please enter either a search query or a geographic location.")
39
+ else:
40
+ try:
41
+ results = fetch_google_maps_results(query=query, location=location, search_type=search_type)
42
+ # Display the results (you might want to format or filter this)
43
+ st.write(results)
44
+ except Exception as e:
45
+ st.error(f"Couldn't fetch the results. Error: {e}")