This commit is contained in:
2025-04-14 17:21:50 +00:00
parent 210c227893
commit 9517581244

View File

@@ -29,6 +29,7 @@ import csv
import gender_guesser.detector as gender import gender_guesser.detector as gender
from urllib.parse import urlparse, urlencode from urllib.parse import urlparse, urlencode
from difflib import SequenceMatcher from difflib import SequenceMatcher
import argparse
# Optional: tiktoken für Token-Zählung (Modus 8) # Optional: tiktoken für Token-Zählung (Modus 8)
try: try:
@@ -2349,6 +2350,17 @@ class DataProcessor:
# ----------------- Main-Funktion ----------------- # ----------------- Main-Funktion -----------------
def main(): def main():
global MODE, LOG_FILE global MODE, LOG_FILE
# 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("Bitte wählen Sie den Betriebsmodus:")
print("wiki: Nur Wikipedia-Verifizierung (Batch)") print("wiki: Nur Wikipedia-Verifizierung (Batch)")
print("website: Nur Website-Scraping (Batch)") print("website: Nur Website-Scraping (Batch)")
@@ -2363,10 +2375,10 @@ def main():
print("41: Nur Wikipedia-Scraping") print("41: Nur Wikipedia-Scraping")
print("6: Contact Research (LinkedIn)") print("6: Contact Research (LinkedIn)")
print("8: Batch Token-Zählung") print("8: Batch Token-Zählung")
MODE = input("Geben Sie den Modus ein (z.B. wiki, website, branch, combined oder alte Zahl): ").strip().lower() MODE = input("Geben Sie den Modus ein (z.B. wiki, website, branch, combined oder alte Zahl): ").strip().lower()
if not MODE: if not MODE:
MODE = "combined" MODE = "combined"
LOG_FILE = create_log_filename(MODE) LOG_FILE = create_log_filename(MODE)
debug_print(f"Start Betriebsmodus {MODE}") debug_print(f"Start Betriebsmodus {MODE}")
@@ -2375,12 +2387,19 @@ def main():
dp = DataProcessor() 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: try:
row_limit = int(input("Wie viele Zeilen sollen insgesamt bearbeitet werden? ")) row_limit = int(input("Wie viele Zeilen sollen insgesamt bearbeitet werden? "))
except Exception as e: except Exception as e:
debug_print(f"Fehler bei der Eingabe der Zeilenanzahl: {e}. Es werden alle Zeilen verarbeitet.") debug_print(f"Fehler bei der Eingabe der Zeilenanzahl: {e}. Es werden alle Zeilen verarbeitet.")
row_limit = None row_limit = None
# Auswahl des Arbeitsmodus
if MODE in ["wiki", "website", "branch", "combined"]:
run_dispatcher(MODE, row_limit) run_dispatcher(MODE, row_limit)
elif MODE == "1": elif MODE == "1":
dp.process_rows() dp.process_rows()