diff --git a/brancheneinstufung.py b/brancheneinstufung.py index e60122a1..1ad828c7 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -241,6 +241,48 @@ def summarize_website_content(raw_text): debug_print(f"Fehler beim Erstellen der Website-Zusammenfassung: {e}") return "k.A." +# ==================== NEUE FUNKTION: Website-Suche bei fehlender Website ==================== +def serp_website_lookup(company_name): + """ + Ermittelt über SERPAPI (Google-Suche) die Website zum Unternehmen. + - Verwendet als Query den Firmennamen. + - Filtert Ergebnisse anhand einer Blacklist (z.B. bloomberg.com, northdata.de). + + Returns: + Die gefundene Website-URL oder "k.A.", falls kein passendes Ergebnis gefunden wurde. + """ + # Blacklist von Domains, die wir nicht verwenden wollen + blacklist = ["bloomberg.com", "northdata.de", "finanzen.net", "handelsblatt.com"] + try: + with open("serpApiKey.txt", "r") as f: + serp_key = f.read().strip() + except Exception as e: + debug_print(f"Fehler beim Lesen des SerpAPI-Schlüssels: {e}") + return "k.A." + + query = f"{company_name} Website" + params = { + "engine": "google", + "q": query, + "api_key": serp_key, + "hl": "de" + } + try: + response = requests.get("https://serpapi.com/search", params=params, timeout=10) + data = response.json() + if "organic_results" in data: + for result in data["organic_results"]: + # Extrahiere URL und prüfe, ob sie in der Blacklist enthalten ist + url = result.get("link", "") + if url and not any(black_item in url for black_item in blacklist): + debug_print(f"SERP-Website Lookup: Gefundene Website '{url}' für {company_name}") + return url + return "k.A." + except Exception as e: + debug_print(f"Fehler beim SERP-API Website Lookup für {company_name}: {e}") + return "k.A." + + # ==================== NEUE FUNKTION: process_verification_only ==================== def process_verification_only(): debug_print("Starte Verifizierungsmodus (Modus 51) im Batch-Prozess...") @@ -347,6 +389,52 @@ def process_verification_only(): time.sleep(Config.RETRY_DELAY) debug_print("Verifizierungs-Batch abgeschlossen.") +# ==================== List Metatitel, Description und Überschriften aus Websiten aus ==================== +def scrape_website_details(url): + """ + Ruft die Website ab und extrahiert: + - den Seitentitel (aus