From 417850b31ec248aec6d7957fbfa3dbb288662475 Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 9 Apr 2025 09:05:21 +0000 Subject: [PATCH] bugfix --- brancheneinstufung.py | 73 +++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 31 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index da9cdbe1..5ec47b4a 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -1160,7 +1160,7 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat # Hole den Firmennamen aus Spalte B (Index 1) company_name = row_data[1] if len(row_data) > 1 else "" - # Hole die CRM-Website aus Spalte D (Index 3). Falls keine Website vorhanden ist, führe SERP-API Lookup durch. + # Hole die CRM-Website aus Spalte D (Index 3). website_url = row_data[3] if len(row_data) > 3 else "" if website_url.strip() == "" or website_url.strip().lower() == "k.a.": new_website = serp_website_lookup(company_name) @@ -1173,39 +1173,49 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat debug_print(f"Zeile {row_num}: Fehler beim Updaten der CRM-Website in Spalte D: {e}") else: debug_print(f"Zeile {row_num}: Keine Website gefunden für {company_name}.") - - # Website-Scraping: Unabhängig vom process_wiki-Flag + + # Website-Scraping: Wenn Wiki URL (Spalte M) "k.A." ist, nutze scrape_website_details, + # ansonsten führe den bisherigen Block aus. website_raw = "k.A." website_summary = "k.A." - if website_url.strip() != "" and website_url.strip().lower() != "k.a.": - # Extrahiere den Rohtext der Website - website_raw = get_website_raw(website_url) - # Erstelle eine Zusammenfassung des Website-Contents - website_summary = summarize_website_content(website_raw) - - # Debug-Ausgabe: Länge und erster Ausschnitt des Rohtexts - debug_print(f"Zeile {row_num}: Gescrappter Website-Rohtext Länge: {len(website_raw)}; erster Ausschnitt: {website_raw[:100]}") - debug_print(f"Zeile {row_num}: Website-Zusammenfassung: {website_summary}") - - # Aktualisiere Spalte AR (Website-Rohtext) - try: - update_result_ar = self.sheet_handler.sheet.update(values=[[website_raw]], range_name=f"AR{row_num}") - debug_print(f"Zeile {row_num}: Spalte AR Update erfolgreich: {update_result_ar}") - except Exception as e: - debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR: {e}") - - # Aktualisiere Spalte AS (Website Zusammenfassung) - try: - update_result_as = self.sheet_handler.sheet.update(values=[[website_summary]], range_name=f"AS{row_num}") - debug_print(f"Zeile {row_num}: Spalte AS Update erfolgreich: {update_result_as}") - except Exception as e: - debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AS: {e}") - - debug_print(f"Zeile {row_num}: Website-Daten gescrapt. Rohtext (Länge {len(website_raw)}): {website_raw[:100]}..., Zusammenfassung: {website_summary}") + if row_data[11].strip().lower() == "k.a.": + # Fallback: Es liegt kein Wikipedia-Eintrag vor, also extrahiere Details von der CRM-Website. + if website_url.strip() != "" and website_url.strip().lower() != "k.a.": + website_details = scrape_website_details(website_url) + website_summary = website_details # Das Ergebnis wird als Fallback genutzt + try: + self.sheet_handler.sheet.update(values=[[website_details]], range_name=f"AR{row_num}") + debug_print(f"Zeile {row_num}: Website-Scraping Fallback durchgeführt, Ergebnis in Spalte AR eingetragen: {website_details[:100]}...") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR (Fallback): {e}") + else: + debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Fallback-Website-Scraping wird übersprungen.") else: - debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Website-Scraping wird übersprungen.") + # Falls ein Wikipedia-Eintrag vorhanden ist, fahre mit der herkömmlichen Website-Auswertung fort. + if website_url.strip() != "" and website_url.strip().lower() != "k.a.": + website_raw = get_website_raw(website_url) + website_summary = summarize_website_content(website_raw) + + debug_print(f"Zeile {row_num}: Gescrappter Website-Rohtext Länge: {len(website_raw)}; erster Ausschnitt: {website_raw[:100]}") + debug_print(f"Zeile {row_num}: Website-Zusammenfassung: {website_summary}") + + try: + update_result_ar = self.sheet_handler.sheet.update(values=[[website_raw]], range_name=f"AR{row_num}") + debug_print(f"Zeile {row_num}: Spalte AR Update erfolgreich: {update_result_ar}") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR: {e}") + + try: + update_result_as = self.sheet_handler.sheet.update(values=[[website_summary]], range_name=f"AS{row_num}") + debug_print(f"Zeile {row_num}: Spalte AS Update erfolgreich: {update_result_as}") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AS: {e}") + + debug_print(f"Zeile {row_num}: Website-Daten gescrapt. Rohtext (Länge {len(website_raw)}): {website_raw[:100]}..., Zusammenfassung: {website_summary}") + else: + debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Website-Scraping wird übersprungen.") - # --- Weiterer Verarbeitungsteil: Wikipedia-Verarbeitung --- + # Weiterer Verarbeitungsteil: Wikipedia-Verarbeitung (falls process_wiki True) wiki_update_range = f"L{row_num}:R{row_num}" dt_wiki_range = f"AN{row_num}" company_data = {} @@ -1243,7 +1253,7 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat else: debug_print(f"Zeile {row_num}: Wikipedia-Timestamp bereits gesetzt – überspringe Wiki-Auswertung.") - # --- ChatGPT-Verarbeitung (Umsatz, FSM, Mitarbeiter, Branchenevaluierung) --- + # ChatGPT-Verarbeitung (Umsatz, FSM, Mitarbeiter, Branchenevaluierung) dt_chat_range = f"AO{row_num}" ver_range = f"AP{row_num}" if process_chatgpt: @@ -1296,6 +1306,7 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat time.sleep(Config.RETRY_DELAY) + # ==================== ALIGNMENT DEMO FÜR HAUPTBLATT UND CONTACTS ==================== def alignment_demo_full():