import gradio as gr import requests from bs4 import BeautifulSoup from urllib.parse import urljoin def parse_links(ort): try: # Konstruiere die vollständige URL initial_url = "http://specialist-it.de:3000?q=hallo" # Senden der Anfrage an die initiale URL response = requests.get(initial_url) response.raise_for_status() # Überprüfen, ob die Anfrage erfolgreich war # Parse the HTML content using BeautifulSoup soup = BeautifulSoup(response.content, 'html.parser') # Finde alle p-Tags p_tags = soup.find_all('p') # Füge den Text der p-Tags zu einem String hinzu p_text = ' '.join(tag.get_text() for tag in p_tags) print(p_text) # Rückgabe als Dictionary, um es mit gr.JSON kompatibel zu machen return p_text # Den body-Tag finden body_tag = soup.find('body') # Den Text des body-Tags zurückgeben body_text = body_tag.get_text() # Den Text ausgeben print(body_text) # Rückgabe als Dictionary, um es mit gr.JSON kompatibel zu machen return {"body_text": body_text} except requests.RequestException as e: return {"error": str(e)} except Exception as e: return {"error": str(e)} # Erstelle die Gradio-Schnittstelle with gr.Blocks() as demo: gr.Markdown("# Vereine in Bayern") ort_input = gr.Textbox(label="Ort", placeholder="Gib den Namen des Ortes ein") links_output = gr.JSON(label="Gefundene Vereine") # Button zum Starten der Parsung button = gr.Button("Parse und Scrape") # Verbinde den Button mit der Funktion button.click(fn=parse_links, inputs=ort_input, outputs=links_output) demo.launch()