# app.py | |
import streamlit as st | |
from googlesearch import search | |
import requests | |
# Function to perform Google search and return the first link | |
def google_search(query): | |
try: | |
# Perform the search and get an iterator of results | |
search_results = search(query, num_results=10) # Get up to 10 results | |
first_link = next(search_results, None) # Get the first result | |
return first_link | |
except Exception as e: | |
st.error(f"An error occurred: {e}") | |
return None | |
# Function to fetch webpage content | |
def fetch_webpage_content(url): | |
try: | |
response = requests.get(url) | |
response.raise_for_status() # Check if the request was successful | |
return response.text | |
except Exception as e: | |
st.error(f"Failed to fetch the webpage content: {e}") | |
return None | |
# Streamlit app UI | |
st.title("Search Link Finder") | |
# Input field for search query | |
query = st.text_input("Enter search query", "") | |
# Button to trigger search | |
if st.button("Search"): | |
if query: | |
first_link = google_search(query) | |
if first_link: | |
st.success(f"First link: [Click here]({first_link})") | |
# Fetch webpage content | |
webpage_content = fetch_webpage_content(first_link) | |
if webpage_content: | |
# Download button for the webpage content | |
st.download_button( | |
label="Download Webpage Content", | |
data=webpage_content, | |
file_name="webpage_content.html", | |
mime="text/html" | |
) | |
else: | |
st.warning("No results found") | |
else: | |
st.error("Please enter a query") | |