Skip to main content

Ein Tool zum Überprüfen und Bereinigen von URLs in JSON-Lines Dateien

Project description

LinkCheck

Ein Tool zum Überprüfen und Bereinigen von URLs in JSON-Lines Dateien.

Installation

uv venv
source .venv/bin/activate
uv pip install -e .

Verwendung

Das Tool wird über die Kommandozeile gesteuert und verarbeitet JSON-Lines Dateien (eine JSON-Objekt pro Zeile):

python linkcheck.py input.jsonl feldname1 feldname2 [feldname3 ...] [optionen]

Parameter

  • input_file: Pfad zur JSON-Lines Eingabedatei (ein JSON-Objekt pro Zeile)
  • fields: Eine oder mehrere Feldnamen, die auf URLs überprüft werden sollen
  • --suffix: Optional: Suffix für die Ausgabedatei (Standard: "_cleaned")
  • --chunk-size: Optional: Größe der zu verarbeitenden Chunks (Standard: 1000)
  • -v, --verbose: Optional: Aktiviert ausführliche Ausgaben zur Verarbeitung
  • --timeout: Optional: Timeout in Sekunden für URL-Überprüfungen (Standard: 10.0)
  • --timeout-file: Optional: Datei zum Speichern von URLs, die ein Timeout verursacht haben
  • --keep-timeout: Optional: URLs bei Timeout behalten statt zu löschen
  • --follow-redirects: Optional: Bei Weiterleitungen (301/302) die neue URL übernehmen (Standard: Original-URL behalten)
  • --visual: Optional: Zeigt eine visuelle Fortschrittsanzeige statt Logging-Ausgaben
  • --threads: Optional: Anzahl der parallel arbeitenden Threads (Standard: 1)

Beispiele

Standard-Modus:

python linkcheck.py daten.jsonl url_feld beschreibungs_url --suffix _bereinigt

Ausführlicher Modus mit detaillierten Ausgaben:

python linkcheck.py daten.jsonl url_feld beschreibungs_url -v

Mit angepasstem Timeout und Timeout-Logging:

python linkcheck.py daten.jsonl url_feld --timeout 5.0 --timeout-file timeouts.txt

Timeout-URLs behalten und loggen:

python linkcheck.py daten.jsonl url_feld --timeout 5.0 --timeout-file timeouts.txt --keep-timeout

Weiterleitungen folgen und visuelle Fortschrittsanzeige:

python linkcheck.py daten.jsonl url_feld --follow-redirects --visual

Parallele Verarbeitung mit mehreren Threads:

python linkcheck.py daten.jsonl url_feld --threads 5 --visual

Funktionsweise

  1. Das Tool liest die JSON-Lines Datei zeilenweise ein
  2. Verarbeitet die Daten in Chunks für optimale Performance
  3. Verteilt die Chunks auf die angegebene Anzahl von Threads
  4. Prüft die angegebenen Felder auf gültige URLs:
    • Einzelne URL-Strings werden direkt geprüft
    • Arrays von URLs werden Element für Element geprüft
  5. Überprüft die Erreichbarkeit der URLs:
    • Status 200: URL wird beibehalten
    • Status 301/302: URL wird beibehalten oder aktualisiert (mit --follow-redirects)
    • Status 404: URL wird gelöscht (bei Arrays: aus dem Array entfernt)
    • Timeout: URL wird gelöscht oder behalten (mit --keep-timeout) und optional in Timeout-Datei geschrieben
    • Ungültige URL: URL wird gelöscht (bei Arrays: aus dem Array entfernt)
  6. Speichert das Ergebnis:
    • Einzelne URLs: Feld wird gelöscht wenn URL ungültig
    • Arrays: Leere Arrays werden komplett gelöscht, sonst bleiben gültige URLs erhalten

Die Verarbeitung erfolgt parallel für optimale Leistung bei großen Dateien. Fehlerhafte JSON-Lines werden übersprungen und geloggt.

Verbose-Modus (-v)

Im Verbose-Modus gibt das Tool detaillierte Informationen aus:

  • Start und Ende der Verarbeitung
  • Einlesen der Datei und Chunk-Informationen
  • Details zu jeder URL-Überprüfung (einzeln oder im Array)
  • Status-Codes und Weiterleitungen
  • Timeout-Ereignisse und betroffene URLs
  • Information ob Timeout-URLs behalten oder gelöscht werden
  • Änderungen an den Feldern und Arrays
  • Fortschritt der Verarbeitung

Visueller Modus (--visual)

Im visuellen Modus zeigt das Tool Fortschrittsbalken:

  • Gesamtfortschritt: Zeigt die Verarbeitung aller Zeilen der Eingabedatei
  • Thread-Fortschritte: Zeigt die Verarbeitung der URLs in jedem aktiven Thread

Der visuelle Modus deaktiviert die normalen Logging-Ausgaben für eine übersichtlichere Darstellung.

Parallele Verarbeitung (--threads)

Die parallele Verarbeitung mit mehreren Threads beschleunigt die Verarbeitung großer Dateien:

  • Jeder Thread verarbeitet einen eigenen Chunk von URLs
  • Die Ergebnisse werden in temporäre Dateien geschrieben
  • Am Ende werden alle Teilergebnisse zusammengeführt
  • Die Fortschrittsanzeige zeigt den Status jedes Threads separat

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slubjsonlinkcheck-0.1.0.tar.gz (29.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slubjsonlinkcheck-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file slubjsonlinkcheck-0.1.0.tar.gz.

File metadata

  • Download URL: slubjsonlinkcheck-0.1.0.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.16

File hashes

Hashes for slubjsonlinkcheck-0.1.0.tar.gz
Algorithm Hash digest
SHA256 027dec0fecc350e33776eb3f0c157802a652b3f005d4ee2c6970992f77f340f2
MD5 31e50c256700d6c83e2dcd3c9ba29721
BLAKE2b-256 6d851ad5b3a52dd25e45ad1a1caa4f1985d12fb76ce54e914331b5bc240c7680

See more details on using hashes here.

File details

Details for the file slubjsonlinkcheck-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for slubjsonlinkcheck-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ff06a0fbcace683e8ab03bb25387d2d903e5090b987a77d3f200d9ef44131ee
MD5 09e9c161266e594745465b4e45d3dd60
BLAKE2b-256 2f391614cf388fa4f0bcb6a2e123b117d945c5b72edea522f676f5281c8d09b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page