Python ist die beliebteste Sprache für Automatisierung und Datenverarbeitung. Dieser Artikel zeigt, wie Sie mit der German-OCR API in 5 Zeilen Code Ihr erstes Dokument digitalisieren.
Voraussetzungen
- Python 3.8 oder höher
requests-Bibliothek (oder das German-OCR SDK)- Ein German-OCR API-Key (kostenlos registrieren)
pip install requests
Ihr erstes Dokument: 5 Zeilen Code
import requests
response = requests.post(
"https://api.german-ocr.de/v1/extract",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"file": open("dokument.pdf", "rb")},
)
print(response.json()["text"])
Das ist alles. Sie laden eine Datei hoch, die API gibt den erkannten Text zurück. Kein Setup, keine lokale Modellinstallation, keine GPU nötig.
Modell auswählen
# German-OCR: spezialisierte deutsche Texterkennung (~3–5s)
data = {"model": "german-ocr"}
# Privacy Shield: PII-Anonymisierung
data = {"model": "privacy-shield"}
Rechnungsfelder gezielt extrahieren
import requests
import os
API_KEY = os.environ["GERMAN_OCR_API_KEY"]
API_URL = "https://api.german-ocr.de/v1/extract"
def extract_invoice(file_path):
with open(file_path, "rb") as f:
response = requests.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"model": "german-ocr", "document_type": "invoice"}
)
response.raise_for_status()
return response.json()
result = extract_invoice("rechnung.pdf")
fields = result["fields"]
print(f"Rechnungsnr: {fields['invoice_number']}")
print(f"Brutto: {fields['total']} EUR")
Batch-Verarbeitung: Mehrere Dokumente auf einmal
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor, as_completed
def batch_process(input_dir, max_workers=5):
pdf_files = list(Path(input_dir).glob("*.pdf"))
print(f"Gefunden: {len(pdf_files)} PDFs")
with ThreadPoolExecutor(max_workers=max_workers) as executor:
futures = {
executor.submit(process_document, pdf): pdf
for pdf in pdf_files
}
for future in as_completed(futures):
pdf = futures[future]
result = future.result()
print(f" [{result['status'].upper()}] {pdf.name}")
batch_process("./rechnungen/", max_workers=5)
Error Handling: Robust in Produktion
def extract_with_retry(file_path, model="german-ocr",
max_retries=3, initial_delay=1.0):
delay = initial_delay
for attempt in range(max_retries):
try:
with open(file_path, "rb") as f:
response = requests.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"model": model},
timeout=30
)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
time.sleep(delay)
delay *= 2
continue
except RequestException as e:
if attempt < max_retries - 1:
time.sleep(delay)
delay *= 2
continue
raise
Privacy Shield: PII-Anonymisierung
def extract_anonymized(file_path):
with open(file_path, "rb") as f:
response = requests.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"model": "privacy-shield"}
)
return response.json()
result = extract_anonymized("personalausweis.pdf")
# Name: [NACHNAME], Adresse: [ADRESSE], etc.
Nächste Schritte
Sie haben jetzt alles, um OCR in Python produktiv einzusetzen: einfache Extraktion, Batch-Verarbeitung, Error Handling und PII-Anonymisierung. Testen Sie German-OCR 3 Tage kostenlos, ohne Kreditkarte.
