This commit is contained in:
2025-04-14 17:21:50 +00:00
parent 8e9230b8f6
commit a8c18e8629

View File

@@ -29,6 +29,7 @@ import csv
import gender_guesser.detector as gender
from urllib.parse import urlparse, urlencode
from difflib import SequenceMatcher
import argparse
# Optional: tiktoken für Token-Zählung (Modus 8)
try:
@@ -2349,38 +2350,56 @@ class DataProcessor:
# ----------------- Main-Funktion -----------------
def main():
global MODE, LOG_FILE
print("Bitte wählen Sie den Betriebsmodus:")
print("wiki: Nur Wikipedia-Verifizierung (Batch)")
print("website: Nur Website-Scraping (Batch)")
print("branch: Nur Brancheneinschätzung (Batch)")
print("combined: Alle Funktionen (Wikipedia, Website, Branch) in einem Durchlauf")
print("1: Vollständige Verarbeitung (alle Funktionen)")
print("11: Re-Evaluation markierter Zeilen (nur 'x' in Spalte A)")
print("21: Website-Scraping Testmodus (nur Website-Rohtext & Zusammenfassung)")
print("22: SERP-API Website Lookup (nur Website-Daten ermitteln)")
print("23: Website Detail Extraction (nur für Zeilen mit 'x')")
print("31: Nur ChatGPT-Auswertung (alle ChatGPT-Routinen)")
print("41: Nur Wikipedia-Scraping")
print("6: Contact Research (LinkedIn)")
print("8: Batch Token-Zählung")
MODE = input("Geben Sie den Modus ein (z.B. wiki, website, branch, combined oder alte Zahl): ").strip().lower()
if not MODE:
MODE = "combined"
# Argumentparser initialisieren
parser = argparse.ArgumentParser(description="Brancheneinstufung Skript")
parser.add_argument("--mode", type=str, help="Betriebsmodus: wiki, website, branch, combined, etc.")
parser.add_argument("--row_limit", type=int, help="Anzahl der zu verarbeitenden Zeilen/Accounts", default=None)
args = parser.parse_args()
# Betriebsmodus aus Kommandozeile oder interaktiv ermitteln
if args.mode:
MODE = args.mode.strip().lower()
print(f"Betriebsmodus (aus Kommandozeile): {MODE}")
else:
print("Bitte wählen Sie den Betriebsmodus:")
print("wiki: Nur Wikipedia-Verifizierung (Batch)")
print("website: Nur Website-Scraping (Batch)")
print("branch: Nur Brancheneinschätzung (Batch)")
print("combined: Alle Funktionen (Wikipedia, Website, Branch) in einem Durchlauf")
print("1: Vollständige Verarbeitung (alle Funktionen)")
print("11: Re-Evaluation markierter Zeilen (nur 'x' in Spalte A)")
print("21: Website-Scraping Testmodus (nur Website-Rohtext & Zusammenfassung)")
print("22: SERP-API Website Lookup (nur Website-Daten ermitteln)")
print("23: Website Detail Extraction (nur für Zeilen mit 'x')")
print("31: Nur ChatGPT-Auswertung (alle ChatGPT-Routinen)")
print("41: Nur Wikipedia-Scraping")
print("6: Contact Research (LinkedIn)")
print("8: Batch Token-Zählung")
MODE = input("Geben Sie den Modus ein (z.B. wiki, website, branch, combined oder alte Zahl): ").strip().lower()
if not MODE:
MODE = "combined"
LOG_FILE = create_log_filename(MODE)
debug_print(f"Start Betriebsmodus {MODE}")
for entry in prompt_overview()[1:]:
debug_print(f"{entry[0]}: {entry[1]}")
dp = DataProcessor()
if MODE in ["wiki", "website", "branch", "combined"]:
# Row_limit aus Kommandozeile oder interaktiv ermitteln
if args.row_limit is not None:
row_limit = args.row_limit
print(f"Zeilenlimit (aus Kommandozeile): {row_limit}")
else:
try:
row_limit = int(input("Wie viele Zeilen sollen insgesamt bearbeitet werden? "))
except Exception as e:
debug_print(f"Fehler bei der Eingabe der Zeilenanzahl: {e}. Es werden alle Zeilen verarbeitet.")
row_limit = None
# Auswahl des Arbeitsmodus
if MODE in ["wiki", "website", "branch", "combined"]:
run_dispatcher(MODE, row_limit)
elif MODE == "1":
dp.process_rows()
@@ -2420,4 +2439,4 @@ def main():
print(f"Verarbeitung abgeschlossen. Logfile: {LOG_FILE}")
if __name__ == '__main__':
main()
main()