Spaces:
Sleeping
Sleeping
File size: 2,614 Bytes
3e996d0 ba1946b 932e360 54a434a 932e360 fce2a17 932e360 fce2a17 932e360 fce2a17 d1daf4e fce2a17 d1daf4e 932e360 fce2a17 932e360 fce2a17 932e360 d1daf4e fce2a17 54a434a b1d35e5 54a434a b1d35e5 54a434a d1daf4e fce2a17 d1daf4e fce2a17 54a434a d1daf4e fce2a17 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import streamlit as st
from apify_client import ApifyClient
import requests
import pandas as pd
def fetch_google_maps_info(website_name):
apify_client = ApifyClient("apify_api_uz0y556N4IG2aLcESj67kmnGSUpHF12XAkLp")
# Prepare the Actor input for Google Maps
run_input = {
"searchStringsArray": [website_name],
# ... other parameters
}
# Run the Actor and wait for it to finish
run = apify_client.actor("nwua9Gu5YrADL7ZDj").call(run_input=run_input)
# Fetch Actor results from the run's dataset
items = list(apify_client.dataset(run["defaultDatasetId"]).iterate_items())
return items[0] if items else None
def fetch_weather_info(lat, lon):
API_KEY = "91b23cab82ee530b2052c8757e343b0d"
url = f"https://api.openweathermap.org/data/3.0/onecall?lat={lat}&lon={lon}&exclude=hourly,daily&appid={API_KEY}"
response = requests.get(url)
return response.json()
# Main Streamlit app
website_name = st.text_input("Enter a website / company name:")
if website_name:
google_maps_data = fetch_google_maps_info(website_name)
if google_maps_data:
# Formatting and displaying all the data in Streamlit table
table_data = {}
for key, value in google_maps_data.items():
# Handle lists of strings
if isinstance(value, list) and all(isinstance(item, str) for item in value):
table_data[key] = ", ".join(value)
# Handle lists of dictionaries
elif isinstance(value, list) and all(isinstance(item, dict) for item in value):
table_data[key] = ", ".join([str(item) for item in value])
# Handle nested dictionaries
elif isinstance(value, dict):
table_data[key] = ", ".join([f"{k}: {v}" for k, v in value.items()])
else:
table_data[key] = value
st.table(table_data)
# Fetch weather info based on Google Maps data's location
lat = google_maps_data["location"]["lat"]
lng = google_maps_data["location"]["lng"]
if lat and lng:
# Display location on Streamlit map
df_location = pd.DataFrame({'lat': [lat], 'lon': [lng]})
st.map(df_location)
weather_data = fetch_weather_info(lat, lng)
current_weather = weather_data.get("current", {})
st.write(f"Temperature: {current_weather.get('temp')}°C")
st.write(f"Weather: {current_weather.get('weather')[0].get('description')}")
else:
st.write("No results found for this website / company name on Google Maps.") |