diff --git a/brancheneinstufung.py b/brancheneinstufung.py index b72b994b..6fbe3d66 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -1166,8 +1166,11 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat new_website = serp_website_lookup(company_name) if new_website != "k.A.": website_url = new_website - self.sheet_handler.sheet.update(values=[[website_url]], range_name=f"D{row_num}") - debug_print(f"Zeile {row_num}: CRM-Website war leer – neue Website gefunden und in Spalte D eingetragen: {website_url}") + try: + self.sheet_handler.sheet.update(values=[[website_url]], range_name=f"D{row_num}") + debug_print(f"Zeile {row_num}: CRM-Website war leer – neue Website gefunden und in Spalte D eingetragen: {website_url}") + except Exception as e: + 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}.") @@ -1177,14 +1180,21 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat 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) - self.sheet_handler.sheet.update(values=[[website_raw]], range_name=f"AR{row_num}") - self.sheet_handler.sheet.update(values=[[website_summary]], range_name=f"AS{row_num}") - debug_print(f"Zeile {row_num}: Website-Daten gescrapt. Zusammenfassung: {website_summary}") + try: + self.sheet_handler.sheet.update(values=[[website_raw]], range_name=f"AR{row_num}") + debug_print(f"Zeile {row_num}: Website-Rohtext in Spalte AR erfolgreich aktualisiert.") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR: {e}") + try: + self.sheet_handler.sheet.update(values=[[website_summary]], range_name=f"AS{row_num}") + debug_print(f"Zeile {row_num}: Website-Zusammenfassung in Spalte AS erfolgreich aktualisiert.") + 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.") - - # Nun folgt der bestehende Ablauf der weiteren Verarbeitung: - # – Wikipedia-Verarbeitung (wenn process_wiki True) + + # 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 = {} @@ -1209,7 +1219,7 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat 'umsatz': 'k.A.', 'mitarbeiter': 'k.A.', 'categories': 'k.A.', 'full_infobox': 'k.A.' } - self.sheet_handler.sheet.update(values=[[ + self.sheet_handler.sheet.update(values=[[ row_data[11] if len(row_data) > 11 and row_data[11].strip() not in ["", "k.A."] else "k.A.", company_data.get('url', 'k.A.'), company_data.get('first_paragraph', 'k.A.'), @@ -1222,7 +1232,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 (z.B. Umsatz, FSM, Mitarbeiter und Branchenevaluierung) + # ChatGPT-Verarbeitung (Umsatz, FSM, Mitarbeiter, Branchenevaluierung) dt_chat_range = f"AO{row_num}" ver_range = f"AP{row_num}" if process_chatgpt: @@ -1268,8 +1278,12 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") self.sheet_handler.sheet.update(values=[[current_dt]], range_name=ver_range) self.sheet_handler.sheet.update(values=[[Config.VERSION]], range_name=ver_range) - debug_print(f"Zeile {row_num} abgeschlossen. URL: {company_data.get('url', 'k.A.')}, Branche: {company_data.get('branche', 'k.A.')}, Umsatz-Abgleich: {abgleich_result}, Validierung: {valid_result}, FSM: {fsm_result['suitability']}, Servicetechniker-Schätzung: {st_estimate}") + debug_print(f"Zeile {row_num} abgeschlossen. URL: {company_data.get('url', 'k.A.')}, " + f"Branche: {company_data.get('branche', 'k.A.')}, Umsatz-Abgleich: {abgleich_result}, " + f"Validierung: {valid_result}, FSM: {fsm_result['suitability']}, " + f"Servicetechniker-Schätzung: {st_estimate}") time.sleep(Config.RETRY_DELAY) + # ==================== ALIGNMENT DEMO FÜR HAUPTBLATT UND CONTACTS ==================== def alignment_demo_full():