bugfix
This commit is contained in:
@@ -321,6 +321,11 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
über SerpAPI und trägt gefundene URLs in Spalte M ein. Setzt ReEval-Flag (A)
|
über SerpAPI und trägt gefundene URLs in Spalte M ein. Setzt ReEval-Flag (A)
|
||||||
und löscht Timestamps (AN, AO) für gefundene Einträge.
|
und löscht Timestamps (AN, AO) für gefundene Einträge.
|
||||||
Merkt sich in Spalte AY, wann die Suche durchgeführt wurde.
|
Merkt sich in Spalte AY, wann die Suche durchgeführt wurde.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
sheet_handler (GoogleSheetHandler): Initialisierte Instanz.
|
||||||
|
row_limit (int, optional): Maximale Anzahl zu prüfender Zeilen. Defaults to None.
|
||||||
|
min_employees (int, optional): Mindestanzahl Mitarbeiter (Spalte K) als Filter. Defaults to 500.
|
||||||
"""
|
"""
|
||||||
logging.info(f"Starte Modus 'find_wiki_serp': Suche fehlende Wiki-URLs für Firmen > {min_employees} MA...")
|
logging.info(f"Starte Modus 'find_wiki_serp': Suche fehlende Wiki-URLs für Firmen > {min_employees} MA...")
|
||||||
|
|
||||||
@@ -351,6 +356,7 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
logging.critical(f"FEHLER beim Holen der Spaltenbuchstaben: {e}")
|
logging.critical(f"FEHLER beim Holen der Spaltenbuchstaben: {e}")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# --- HIER WIRD all_sheet_updates definiert ---
|
||||||
all_sheet_updates = []
|
all_sheet_updates = []
|
||||||
processed_rows = 0 # Zählt Zeilen, für die eine Suche durchgeführt wurde
|
processed_rows = 0 # Zählt Zeilen, für die eine Suche durchgeführt wurde
|
||||||
found_urls = 0 # Zählt Zeilen, wo eine URL gefunden wurde
|
found_urls = 0 # Zählt Zeilen, wo eine URL gefunden wurde
|
||||||
@@ -375,6 +381,7 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
continue # Nächste Zeile, diese wurde schon geprüft
|
continue # Nächste Zeile, diese wurde schon geprüft
|
||||||
# --- ENDE NEUE PRÜFUNG ---
|
# --- ENDE NEUE PRÜFUNG ---
|
||||||
|
|
||||||
|
# Prüfe, ob Zeile überhaupt verarbeitet werden soll
|
||||||
try:
|
try:
|
||||||
# 1. Mitarbeiterzahl prüfen
|
# 1. Mitarbeiterzahl prüfen
|
||||||
ma_val_str = row[col_indices["K"]] if len(row) > col_indices["K"] else "0"
|
ma_val_str = row[col_indices["K"]] if len(row) > col_indices["K"] else "0"
|
||||||
@@ -389,6 +396,7 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
|
|
||||||
# 2. Prüfen, ob Wiki URL (M) leer oder "k.A." ist
|
# 2. Prüfen, ob Wiki URL (M) leer oder "k.A." ist
|
||||||
m_value = row[col_indices["M"]] if len(row) > col_indices["M"] else ""
|
m_value = row[col_indices["M"]] if len(row) > col_indices["M"] else ""
|
||||||
|
# Prüfe auf leer UND 'k.a.' (case-insensitive)
|
||||||
if m_value and m_value.strip().lower() != "k.a.":
|
if m_value and m_value.strip().lower() != "k.a.":
|
||||||
skipped_m_filled_count += 1
|
skipped_m_filled_count += 1
|
||||||
continue
|
continue
|
||||||
@@ -401,9 +409,9 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
|
|
||||||
# --- SerpAPI Suche durchführen ---
|
# --- SerpAPI Suche durchführen ---
|
||||||
logging.info(f"Zeile {row_num_in_sheet}: Suche Wiki-URL für '{company_name}' (MA: {ma_val})...")
|
logging.info(f"Zeile {row_num_in_sheet}: Suche Wiki-URL für '{company_name}' (MA: {ma_val})...")
|
||||||
wiki_url_found = serp_wikipedia_lookup(company_name)
|
wiki_url_found = serp_wikipedia_lookup(company_name) # Annahme: nutzt logging
|
||||||
processed_rows += 1 # Zähle die durchgeführte Suche
|
processed_rows += 1 # Zähle die durchgeführte Suche
|
||||||
time.sleep(1.5) # Pause
|
time.sleep(1.5) # Pause zwischen SerpAPI-Aufrufen
|
||||||
|
|
||||||
# --- Updates vorbereiten ---
|
# --- Updates vorbereiten ---
|
||||||
# Timestamp AY IMMER setzen, um die Suche zu markieren
|
# Timestamp AY IMMER setzen, um die Suche zu markieren
|
||||||
@@ -424,27 +432,31 @@ def process_find_wiki_with_serp(sheet_handler, row_limit=None, min_employees=500
|
|||||||
# Optional: Marker in M schreiben? Vorerst nicht, AY reicht.
|
# Optional: Marker in M schreiben? Vorerst nicht, AY reicht.
|
||||||
# row_updates.append({'range': f'{col_letters["M"]}{row_num_in_sheet}', 'values': [['k.A. (SerpAPI Searched)']]})
|
# row_updates.append({'range': f'{col_letters["M"]}{row_num_in_sheet}', 'values': [['k.A. (SerpAPI Searched)']]})
|
||||||
|
|
||||||
|
# Füge die Updates für diese Zeile zur Gesamtliste hinzu
|
||||||
all_sheet_updates.extend(row_updates)
|
all_sheet_updates.extend(row_updates)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
# Logge Fehler und fahre mit der nächsten Zeile fort
|
||||||
logging.exception(f"Unerwarteter Fehler bei Verarbeitung von Zeile {row_num_in_sheet}: {e}")
|
logging.exception(f"Unerwarteter Fehler bei Verarbeitung von Zeile {row_num_in_sheet}: {e}")
|
||||||
|
continue # Gehe zur nächsten Zeile
|
||||||
|
|
||||||
# --- Batch Update am Ende ---
|
# --- Batch Update am Ende ---
|
||||||
if all_sheet_updates:
|
# Dieser Block muss auf derselben Einrückungsebene wie die for-Schleife sein!
|
||||||
logging.info(f"Sende Batch-Update für {processed_rows} geprüfte Zeilen ({found_urls} URLs gefunden, {len(all_sheet_updates)} Zellen)...")
|
if all_sheet_updates:
|
||||||
success = sheet_handler.batch_update_cells(all_sheet_updates)
|
logging.info(f"Sende Batch-Update für {processed_rows} geprüfte Zeilen ({found_urls} URLs gefunden, {len(all_sheet_updates)} Zellen)...")
|
||||||
if success:
|
success = sheet_handler.batch_update_cells(all_sheet_updates)
|
||||||
logging.info(f"Sheet-Update für 'find_wiki_serp' erfolgreich.")
|
if success:
|
||||||
# Fehler wird von batch_update_cells geloggt
|
logging.info(f"Sheet-Update für 'find_wiki_serp' erfolgreich.")
|
||||||
else:
|
# Fehler wird von batch_update_cells geloggt
|
||||||
logging.info("Keine Zeilen gefunden, für die eine SerpAPI Wiki-Suche durchgeführt werden musste/konnte.")
|
else:
|
||||||
|
logging.info("Keine Zeilen gefunden, für die eine SerpAPI Wiki-Suche durchgeführt werden musste/konnte.")
|
||||||
|
|
||||||
logging.info(f"Modus 'find_wiki_serp' abgeschlossen.")
|
logging.info(f"Modus 'find_wiki_serp' abgeschlossen.")
|
||||||
logging.info(f" Durchgeführte Suchen in diesem Lauf: {processed_rows}")
|
logging.info(f" Durchgeführte Suchen in diesem Lauf: {processed_rows}")
|
||||||
logging.info(f" Gefundene & eingetragene URLs: {found_urls}")
|
logging.info(f" Gefundene & eingetragene URLs: {found_urls}")
|
||||||
logging.info(f" Übersprungen (AY bereits gesetzt): {skipped_timestamp_ay}")
|
logging.info(f" Übersprungen (AY bereits gesetzt): {skipped_timestamp_ay}")
|
||||||
logging.info(f" Übersprungen (MA <= {min_employees}): {skipped_employee_count}")
|
logging.info(f" Übersprungen (MA <= {min_employees}): {skipped_employee_count}")
|
||||||
logging.info(f" Übersprungen (M bereits gefüllt): {skipped_m_filled_count}")
|
logging.info(f" Übersprungen (M bereits gefüllt): {skipped_m_filled_count}")
|
||||||
|
|
||||||
def prepare_data_for_modeling(sheet_handler):
|
def prepare_data_for_modeling(sheet_handler):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user