From f893b29462f6754f60889d69a6604b415cd1038b Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 30 May 2025 13:26:29 +0000 Subject: [PATCH] bugfix --- brancheneinstufung.py | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 8039c519..b2d5809b 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -2436,25 +2436,20 @@ def scrape_website_details(url): try: # <<< KORREKTE EINRÜCKUNG (auf gleicher Ebene wie logger.warning darüber) # Hilfsfunktion zum Abrufen des Soup-Objekts mit Retry. # Nutzt retry_on_failure, requests, BeautifulSoup, Config. - @retry_on_failure - def get_soup_for_details(target_url): - # --- START DES NEUEN/ERSETZTEN BLOCKS --- - if not target_url or not isinstance(target_url, str): # Zusätzliche Prüfung - logger.error(f"get_soup_for_details: Ungültige URL '{target_url}' erhalten.") - # Wirf direkt einen Fehler, der vom @retry_on_failure gefangen wird, falls es eine wiederholbare Ursache haben könnte, - # oder einen spezifischen ValueError, falls es ein permanentes Problem ist. - # Für eine ungültige URL-Struktur ist ValueError oft passender. - raise ValueError(f"Ungültige URL für get_soup_for_details: {target_url}") + @retry_on_failure + def get_soup_for_details(target_url): + if not target_url or not isinstance(target_url, str): + logger.error(f"get_soup_for_details: Ungültige URL '{target_url}' erhalten.") + raise ValueError(f"Ungültige URL für get_soup_for_details: {target_url}") - if not target_url.lower().startswith(("http://", "https://")): - logger.debug(f"get_soup_for_details: Füge 'https://' zu URL '{target_url}' hinzu.") - target_url = "https://" + target_url - - # Der requests.get Call ist jetzt hier - response = requests.get(target_url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 15), verify=True) - response.raise_for_status() # Wirft HTTPError für 4xx/5xx Antworten - response.encoding = response.apparent_encoding # Encoding erraten - return BeautifulSoup(response.text, getattr(Config, 'HTML_PARSER', 'html.parser')) # Parsen + if not target_url.lower().startswith(("http://", "https://")): + logger.debug(f"get_soup_for_details: Füge 'https://' zu URL '{target_url}' hinzu.") + target_url = "https://" + target_url # Schema hinzufügen + + response = requests.get(target_url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 15), verify=True) + response.raise_for_status() + response.encoding = response.apparent_encoding + return BeautifulSoup(response.text, getattr(Config, 'HTML_PARSER', 'html.parser')) # --- ENDE DES NEUEN/ERSETZTEN BLOCKS --- # Rufen Sie die Hilfsfunktion auf, um das Soup-Objekt zu erhalten @@ -4694,8 +4689,12 @@ class DataProcessor: if force_reeval: grund_message_parts_wiki.append('Re-Eval') if not self._get_cell_value_safe(row_data, "Wikipedia Timestamp").strip(): grund_message_parts_wiki.append('Z (Wikipedia Timestamp) leer') if self._get_cell_value_safe(row_data, "Chat Wiki Konsistenzpruefung").strip().upper() == "X (URL COPIED)": grund_message_parts_wiki.append("AC (Chat Wiki Konsistenzpruefung)='X (URL COPIED)'") + grund_message_parts_wiki = [] # Für Logging des Grundes + if force_reeval: grund_message_parts_wiki.append('Re-Eval') + if not self._get_cell_value_safe(row_data, "Wikipedia Timestamp").strip(): grund_message_parts_wiki.append('Z (Wikipedia Timestamp) leer') + if self._get_cell_value_safe(row_data, "Chat Wiki Konsistenzpruefung").strip().upper() == "X (URL COPIED)": grund_message_parts_wiki.append("AC (Chat Wiki Konsistenzpruefung)='X (URL COPIED)'") grund_message_wiki = ", ".join(filter(None, grund_message_parts_wiki)) or "Unbekannter Grund (Wiki)" - self.logger.info(f"Zeile {row_num_in_sheet}: Fuehre WIKI Schritte aus (Grund: {grund_message_wiki})...") + self.logger.info(f"Zeile {row_num_in_sheet}: Fuehre WIKI Schritte aus (Grund: {grund_message_wiki})...") # KORREKTUR: grund_message_wiki current_wiki_url_r = self._get_cell_value_safe(row_data, "Wiki URL").strip() # Spalte R (Tochter) system_suggested_parent_o = self._get_cell_value_safe(row_data, "System Vorschlag Parent Account").strip() # Spalte O