bugfix
This commit is contained in:
@@ -3270,26 +3270,28 @@ class DataProcessor:
|
|||||||
except KeyError as e: logging.critical(f"FEHLER: Benötigte Spalte '{e}' fehlt."); return
|
except KeyError as e: logging.critical(f"FEHLER: Benötigte Spalte '{e}' fehlt."); return
|
||||||
except Exception as e: logging.critical(f"FEHLER beim Holen der Spaltenbuchstaben: {e}"); return
|
except Exception as e: logging.critical(f"FEHLER beim Holen der Spaltenbuchstaben: {e}"); return
|
||||||
|
|
||||||
for i, row in enumerate(data_rows):
|
for i, row in enumerate(data_rows): # <= for-Schleife beginnt hier
|
||||||
row_num_in_sheet = i + header_rows + 1
|
row_num_in_sheet = i + header_rows + 1
|
||||||
|
|
||||||
if limit is not None and rows_processed_count >= limit:
|
if limit is not None and rows_processed_count >= limit:
|
||||||
logging.info(f"Limit ({limit}) für Website Lookup erreicht.")
|
logging.info(f"Limit ({limit}) für Website Lookup erreicht.")
|
||||||
break
|
break
|
||||||
|
|
||||||
# Sicherstellen, dass die Zeile lang genug ist, um auf die benötigten Spalten zuzugreifen
|
# Sicherstellen, dass die Zeile lang genug ist, um auf die benötigten Spalten zuzugreifen
|
||||||
# Korrigierte Zeilen - keine Anweisung nach dem Semikolon
|
max_needed_idx = max(website_col_idx, name_col_idx)
|
||||||
max_needed_idx = max(website_col_idx, name_col_idx) # Zuweisung auf eigener Zeile
|
if len(row) <= max_needed_idx:
|
||||||
if len(row) <= max_needed_idx: # if-Statement auf neuer Zeile
|
|
||||||
# Die folgenden Zeilen müssen unter dem if eingerückt sein
|
|
||||||
logging.debug(f"Zeile {row_num_in_sheet}: Übersprungen (Zeile zu kurz).")
|
logging.debug(f"Zeile {row_num_in_sheet}: Übersprungen (Zeile zu kurz).")
|
||||||
continue # continue gehört auch unter das if
|
continue # continue gehört unter das if
|
||||||
|
|
||||||
|
|
||||||
current_website = row[website_col_idx] if len(row) > website_col_idx else ""
|
current_website = row[website_col_idx] if len(row) > website_col_idx else ""
|
||||||
|
|
||||||
if not current_website or str(current_website).strip().lower() == "k.a.":
|
if not current_website or str(current_website).strip().lower() == "k.a.":
|
||||||
company_name = row[name_col_idx] if len(row) > name_col_idx else ""
|
company_name = row[name_col_idx] if len(row) > name_col_idx else ""
|
||||||
if not company_name or str(company_name).strip() == "": logging.warning(f"Zeile {row_num_in_sheet}: Übersprungen (kein Firmenname)."); continue
|
if not company_name or str(company_name).strip() == "":
|
||||||
|
logging.warning(f"Zeile {row_num_in_sheet}: Übersprungen (kein Firmenname).")
|
||||||
|
continue # continue gehört unter das if
|
||||||
|
|
||||||
|
|
||||||
logging.info(f"Zeile {row_num_in_sheet}: Suche Website für '{company_name}'...")
|
logging.info(f"Zeile {row_num_in_sheet}: Suche Website für '{company_name}'...")
|
||||||
new_website = serp_website_lookup(company_name) # Globale Funktion mit Retry
|
new_website = serp_website_lookup(company_name) # Globale Funktion mit Retry
|
||||||
@@ -3297,18 +3299,27 @@ for i, row in enumerate(data_rows):
|
|||||||
|
|
||||||
if new_website != "k.A.":
|
if new_website != "k.A.":
|
||||||
updates.append({'range': f'{website_col_letter}{row_num_in_sheet}', 'values': [[new_website]]})
|
updates.append({'range': f'{website_col_letter}{row_num_in_sheet}', 'values': [[new_website]]})
|
||||||
logging.info(f"Zeile {row_num_in_sheet}: Neue Website '{new_website}' gefunden und zum Update hinzugefügt.")
|
logging.info(f"Zeile {row_num_in_sheet}: Neue Website '{new_website}' gefunden.")
|
||||||
else: logging.info(f"Zeile {row_num_in_sheet}: Keine Website gefunden.")
|
else:
|
||||||
|
logging.info(f"Zeile {row_num_in_sheet}: Keine Website gefunden.")
|
||||||
|
|
||||||
time.sleep(getattr(Config, 'RETRY_DELAY', 5) * 0.3) # Pause nach jedem SERP-Aufruf
|
time.sleep(getattr(Config, 'RETRY_DELAY', 5) * 0.3) # Pause nach jedem SERP-Aufruf
|
||||||
|
|
||||||
if updates:
|
# <= Hier endet die for-Schleife. Die folgenden Blöcke müssen auf dieser Ebene (derselben wie for) eingerückt sein.
|
||||||
|
|
||||||
|
if updates: # <= DIESER BLOCK muss auf derselben Ebene wie die for-Schleife beginnen
|
||||||
logging.info(f"Sende Batch-Update für {len(updates)} Zellen ({rows_processed_count} Zeilen geprüft)...")
|
logging.info(f"Sende Batch-Update für {len(updates)} Zellen ({rows_processed_count} Zeilen geprüft)...")
|
||||||
success = self.sheet_handler.batch_update_cells(updates)
|
success = self.sheet_handler.batch_update_cells(updates)
|
||||||
if success: logging.info(f"Batch-Update erfolgreich.")
|
if success:
|
||||||
else: logging.error(f"FEHLER beim Batch-Update.")
|
logging.info(f"Batch-Update erfolgreich.")
|
||||||
else: logging.info("Keine fehlenden Websites gefunden oder keine Updates nötig.")
|
else: # <= Dieses else gehört zum if success:
|
||||||
logging.info(f"Modus 'website_lookup' abgeschlossen. {rows_processed_count} Zeilen geprüft.")
|
logging.error(f"FEHLER beim Batch-Update.")
|
||||||
|
|
||||||
|
else: # <= DIESER BLOCK gehört zum if updates:
|
||||||
|
logging.info("Keine fehlenden Websites gefunden oder keine Updates nötig.")
|
||||||
|
|
||||||
|
logging.info(f"Modus 'website_lookup' abgeschlossen. {rows_processed_count} Zeilen geprüft.") # <= Diese Zeile gehört zur Methode, auf derselben Ebene wie das if updates:
|
||||||
|
|
||||||
|
|
||||||
# process_find_wiki_serp Methode
|
# process_find_wiki_serp Methode
|
||||||
def process_find_wiki_serp(self, limit=None, min_employees=500, min_umsatz=200): # <<< Methode in DataProcessor
|
def process_find_wiki_serp(self, limit=None, min_employees=500, min_umsatz=200): # <<< Methode in DataProcessor
|
||||||
|
|||||||
Reference in New Issue
Block a user