---
title: "Was ist Data Parsing? Parser-Typen, Fehler und Beispiele"
description: "Data Parsing macht aus HTML, JSON, CSV oder Logs strukturierte Datensätze für Ihren Code. Wie Parser arbeiten, welche Typen es gibt und typische Fehler."
url: https://proxynet.io/de/blog/what-is-data-parsing
date: 2026-09-28
author: "Acar Diveroli"
category: "Web Scraping, Proxy 101"
lang: de
---

# Was ist Data Parsing? Parser-Typen, Fehler und Beispiele

Ein Scraper lädt eine Produktseite herunter und speichert sie auf der Festplatte. Die Datei umfasst 180 KB HTML, und irgendwo darin stehen die vier Angaben, die Sie eigentlich brauchen: Produktname, Preis, Lagerstatus und SKU. Solange kein Programm diese Werte findet, prüft und in benannte Felder schreibt, ist der Download nur Text. Genau dieser Schritt vom Rohtext zu Feldern heißt Data Parsing.

Dieser Beitrag erklärt, was Parsing bedeutet, wie ein Parser arbeitet (zwei Kernstufen und die Schritte davor und danach) und welcher Parser-Typ zu HTML, JSON, CSV, Logs und eigenen Formaten passt. Er grenzt Parsing von Scraping und Extraktion ab, zeigt ein kurzes, getestetes Python-Beispiel mit BeautifulSoup und dem Modul `json`, behandelt die Fehler, an denen Parser in echten Projekten scheitern (fehlerhaftes HTML, ungültiges JSON, Schema Drift), und endet mit einer Entscheidungshilfe: selbst bauen oder einkaufen.

> **Hinweis: Kurzantwort**
>
> Data Parsing ist der Vorgang, rohe Eingaben wie eine HTML-Seite, eine JSON-Antwort, eine CSV-Datei oder eine Logzeile einzulesen und in eine Struktur zu überführen, mit der ein Programm arbeiten kann: Objekte, Zeilen oder Schlüssel-Wert-Paare. Ein Parser zerlegt die Eingabe zuerst in Tokens und ordnet diese dann nach den Regeln des Formats. Beim Web Scraping holt der Scraper die Seite, der Parser macht daraus saubere Datensätze, die anschließend validiert und gespeichert werden.

## Was ist Data Parsing?

Parsing bedeutet, eine Eingabe nach festen Regeln zu analysieren und eine Struktur zu erzeugen, die abbildet, was die Eingabe aussagt. Die Eingabe ist meist ein String oder ein Bytestrom. Die Ausgabe hat Namen und Typen: ein Baum aus HTML-Elementen, ein Python-Dictionary, eine Liste von Zeilen oder ein Datensatz mit einem Feld `price`, das eine Zahl statt des Textes `"$1,249.00"` enthält.

Ihr Browser parst HTML zu einer Seite, Ihr API-Client parst JSON zu Objekten, Ihre Tabellenkalkulation parst CSV zu Zellen. Parsing fällt erst auf, wenn die Eingabe nicht dem entspricht, was der Parser erwartet: Dann bricht das Programm mit einem Fehler ab oder läuft, schlimmer noch, mit falschen Werten weiter.

In der Datenarbeit wird der Begriff auf zwei Ebenen verwendet:

- **Format-Parsing.** Bytes werden in die Struktur des jeweiligen Formats übersetzt: HTML in einen DOM-Baum, JSON in Objekte, CSV in Zeilen. Das erledigen Bibliotheken.
- **Data Parsing im engeren Sinn.** Aus dieser Struktur werden die benötigten Werte mit dem richtigen Typ gelesen: der Preis als Dezimalzahl, das Datum als Datum, der Lagerstatus als wahr oder falsch. Diesen Teil schreiben Sie meist selbst.

## Wie funktioniert ein Parser?

Fast jeder Parser, von der JSON-Bibliothek bis zur HTML-Engine eines Browsers, folgt denselben zwei Kernstufen, lexikalischer und syntaktischer Analyse, mit einem Leseschritt davor sowie Werteauswahl und Validierung danach.

1. **Eingabe als Text lesen.** Bytes werden mit einer Zeichenkodierung, normalerweise UTF-8, in Zeichen umgewandelt. Eine falsche Annahme erzeugt hier Zeichensalat, bevor das Parsing überhaupt beginnt; diesen Fehler behandelt [Encoding-Fehler in Python](/de/blog/python-unicode-encoding-errors).
1. **Tokenisierung (lexikalische Analyse).** Der Parser zerlegt den Zeichenstrom in Tokens, die kleinsten bedeutungstragenden Einheiten: ein Start-Tag, ein Attribut, ein String, eine Zahl, ein Komma, eine schließende geschweifte Klammer.
1. **Struktur aufbauen (syntaktische Analyse).** Die Tokens werden nach der Grammatik des Formats angeordnet. Bei HTML entsteht ein Baum verschachtelter Elemente, bei JSON verschachtelte Objekte und Arrays, bei CSV Zeilen aus Feldern.
1. **Werte auswählen.** Ihr Code durchläuft die Struktur und wählt die benötigten Felder aus, etwa mit einem CSS-Selektor oder XPath auf einem HTML-Baum. [CSS-Selektor oder XPath](/de/blog/css-selector-vs-xpath) vergleicht beide Wege, ein Element anzusprechen.
1. **Umwandeln und validieren.** Aus Text werden typisierte Daten: `"$34.50"` wird zu `34.50`, `"In stock"` wird zu `true`. Datensätze, denen ein Pflichtfeld fehlt, werden markiert statt stillschweigend gespeichert.

Der HTML-Standard beschreibt den Parser eines Browsers genau mit diesen Stufen. Das [Parsing-Kapitel der WHATWG](https://html.spec.whatwg.org/multipage/parsing.html) teilt ihn in Tokenisierung und Baumaufbau und legt außerdem fest, wie sich ein Parser von Fehlern erholen muss. Deshalb zeigen Browser fehlerhafte Seiten an, statt sie abzulehnen.

## Parsing, Scraping und Extraktion im Vergleich

Die drei Begriffe werden oft synonym verwendet, bezeichnen aber verschiedene Schritte derselben Pipeline.

| Begriff | Was passiert | Eingabe | Ausgabe |
|---|---|---|---|
| Crawling | Findet Seiten, indem es Links folgt | Eine Start-URL | Eine Liste von URLs |
| Scraping | Lädt den Inhalt dieser Seiten herunter | URLs | Rohes HTML, JSON oder Dateien |
| Parsing | Macht aus Rohinhalt eine Struktur | Rohtext | Bäume, Objekte, Zeilen |
| Extraktion | Wählt die benötigten Werte aus der Struktur | Ein Baum oder Objekt | Benannte Felder |
| Validierung und Bereinigung | Prüft Typen, entfernt Dubletten, korrigiert Formate | Felder | Verlässliche Datensätze |
| Speicherung | Legt die Datensätze dauerhaft ab | Datensätze | CSV, JSON Lines, eine Datenbank |

Im Alltag umfasst „Parsing“ Parsing, Extraktion und einen Teil der Validierung zugleich, so auch im weiteren Verlauf dieses Beitrags. Crawling und Scraping bilden die Abrufseite; diese Trennung erklärt [Web Scraping vs. Web Crawling](/de/blog/web-scraping-vs-web-crawling). Wo die Datensätze landen, zeigt [Gescrapte Daten als CSV, JSON und in SQLite speichern](/de/blog/save-scraped-data-csv-json-sqlite), und die ganze Kette als wiederholbarer Job ist Thema von [Was ist ETL?](/de/blog/what-is-etl).

## Parser-Typen

Unterschiedliche Eingaben verlangen unterschiedliche Parser. Der falsche Typ, etwa ein regulärer Ausdruck auf verschachteltem HTML, ist die Ursache vieler fragiler Scraper.

| Parser-Typ | Geeignet für | Beispiele | Schwachstelle |
|---|---|---|---|
| HTML-/DOM-Parser | Webseiten, auch mit fehlerhaftem Markup | BeautifulSoup mit `html.parser`, `lxml` oder `html5lib`; Cheerio in Node.js | Selektoren müssen sich mit dem Seitenlayout ändern |
| JSON-Parser | API-Antworten, eingebettete Seitendaten | Python `json`, `JSON.parse` in JavaScript | Streng: Ein überzähliges Komma macht das ganze Dokument ungültig |
| CSV-Parser (Trennzeichen) | Exporte, Tabellen, Berichte | Python `csv`, pandas `read_csv` | Quoting, Trennzeichen und Kodierung variieren je nach Erzeuger |
| XML-Parser | Feeds, Sitemaps, ältere Enterprise-APIs | `lxml`, `xml.etree.ElementTree` | Namespaces machen Selektoren umständlich |
| Reguläre Ausdrücke | Kleine, flache Muster in einem bekannten Feld: Preise, Daten, IDs | Python `re` | Können keiner Verschachtelung folgen; brechen bei Layoutänderungen |
| Grammatikbasierter Parser | Eigene Formate, Abfragesprachen, Konfigurationsdateien | Parser-Generatoren wie ANTLR, Lark | Die Grammatik zu schreiben kostet Zeit |
| Modellbasierter Parser | Unordentlicher Text ohne festes Layout | Sprachmodelle, die JSON zurückgeben | Ausgabe muss validiert werden; Ergebnisse können von Lauf zu Lauf variieren |

Zwei Zeilen brauchen eine Anmerkung. **HTML-Parser unterscheiden sich:** BeautifulSoup setzt auf einen Parser Ihrer Wahl auf, und seine [Dokumentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) zeigt, wie das fehlerhafte Snippet `<a></p>` in `html.parser`, `lxml` und `html5lib` drei verschiedene Bäume ergibt. Geben Sie den Parser ausdrücklich an, sonst kann sich Ihre Ausgabe auf einem Rechner mit einem anderen installierten Parser ändern. **Modellbasiertes Parsing** ist der Weg, auf dem AI-Scraper Seiten mit ständig wechselndem Layout lesen. Es tauscht exakte Regeln gegen Flexibilität, daher wird Validierung noch wichtiger, wie [Was ist ein AI Web Scraper und wie funktioniert er?](/de/blog/ai-web-scraper-how-it-works-2026) erklärt.

## Ein kurzes Parsing-Beispiel in Python

Das Beispiel parst eine kleine Produktseite mit einem HTML-Parser, CSS-Selektoren, einem regulären Ausdruck für das Preisfeld, einer Pflichtfeldprüfung und einem separaten JSON-Parsing für die in die Seite eingebetteten Daten. Speichern Sie Folgendes als `page.html`; die zweite Karte enthält ein nicht geschlossenes `<span>`, der dritten fehlt der Preis:

```html
<!doctype html>
<html lang="en">
<head>
  <title>Desk lamps</title>
  <script type="application/ld+json">
  {"@context": "https://schema.org", "@type": "ItemList",
   "itemListElement": [
     {"@type": "ListItem", "position": 1, "url": "/p/arc-lamp"},
     {"@type": "ListItem", "position": 2, "url": "/p/clip-lamp"}
   ]}
  </script>
</head>
<body>
  <div class="product" data-sku="L-100">
    <h2 class="name">Arc Desk Lamp</h2>
    <span class="price">$1,249.00</span>
    <span class="stock">In stock</span>
  </div>
  <div class="product" data-sku="L-200">
    <h2 class="name">  Clip Lamp </h2>
    <span class="price">$34.50</span>
    <span class="stock">Out of stock
  </div>
  <div class="product" data-sku="L-300">
    <h2 class="name">Floor Lamp</h2>
    <span class="stock">In stock</span>
  </div>
</body>
</html>
```

Installieren Sie die beiden Bibliotheken mit `pip install beautifulsoup4 lxml` und speichern Sie dann Folgendes als `parse_products.py` neben der Seite:

```python
import json
import re
from decimal import Decimal
from pathlib import Path

from bs4 import BeautifulSoup

PRICE_RE = re.compile(r"[\d.,]+")

def parse_price(text):
    """'$1,249.00' -> Decimal('1249.00'); None, wenn keine Zahl vorhanden ist."""
    match = PRICE_RE.search(text or "")
    if not match:
        return None
    return Decimal(match.group().replace(",", ""))

def parse_products(html):
    soup = BeautifulSoup(html, "lxml")
    rows, problems = [], []

    for card in soup.select("div.product"):
        name = card.select_one(".name")
        price = card.select_one(".price")
        stock = card.select_one(".stock")
        row = {
            "sku": card.get("data-sku"),
            "name": name.get_text(strip=True) if name else None,
            "price": parse_price(price.get_text()) if price else None,
            "in_stock": stock is not None and stock.get_text(strip=True) == "In stock",
        }
        missing = [key for key in ("sku", "name", "price") if row[key] is None]
        if missing:
            problems.append({"sku": row["sku"], "missing": missing})
            continue
        rows.append(row)

    # In die Seite eingebettete strukturierte Daten: als JSON parsen, nicht als HTML.
    urls = []
    for tag in soup.select('script[type="application/ld+json"]'):
        try:
            data = json.loads(tag.string or "")
        except json.JSONDecodeError as err:
            problems.append({"json_ld": f"line {err.lineno}, col {err.colno}: {err.msg}"})
            continue
        urls += [item.get("url") for item in data.get("itemListElement", [])]

    return rows, urls, problems

if __name__ == "__main__":
    html = Path("page.html").read_text(encoding="utf-8")
    rows, urls, problems = parse_products(html)
    print(json.dumps(rows, indent=2, default=str))
    print("urls:", urls)
    print("problems:", problems)
```

`python parse_products.py` gibt mit BeautifulSoup 4.15.0, lxml 6.1.3 und Python 3.13 Folgendes aus:

```text
[
  {
    "sku": "L-100",
    "name": "Arc Desk Lamp",
    "price": "1249.00",
    "in_stock": true
  },
  {
    "sku": "L-200",
    "name": "Clip Lamp",
    "price": "34.50",
    "in_stock": false
  }
]
urls: ['/p/arc-lamp', '/p/clip-lamp']
problems: [{'sku': 'L-300', 'missing': ['price']}]
```

Das nicht geschlossene `<span>` hat nichts kaputt gemacht, weil `lxml` den Baum repariert hat; der Name mit überzähligen Leerzeichen kam sauber heraus, und die Lampe ohne Preis landete in `problems`, statt leer gespeichert zu werden. Als wir zum Test ein nachgestelltes Komma in den JSON-LD-Block einfügten, lief das Skript weiter und meldete `line 5, col 64: Illegal trailing comma before end of object`, was direkt auf die Fehlerstelle zeigt. [JSONDecodeError: Expecting Value in Python beheben](/de/blog/jsondecodeerror-expecting-value) listet die übrigen Meldungen dieses Parsers und ihre Ursachen auf.

Derselbe Parser für Node.js nutzt Cheerio statt BeautifulSoup; siehe [Web Scraping mit Cheerio](/de/blog/cheerio-web-scraping). Für einen vollständigen Scraper mit Requests, Paginierung und Speicherung beginnen Sie mit dem [BeautifulSoup-Tutorial](/de/blog/beautifulsoup-tutorial).

## Häufige Parsing-Fehler und ihre Ursachen

- **Fehlerhaftes HTML.** Nicht geschlossene Tags, verirrte schließende Tags und Tags an der falschen Stelle sind im Web normal. Browser und HTML-Parser reparieren sie, aber jeder Parser auf seine Weise; ein Selektor, der mit `html5lib` funktioniert, kann daher mit `html.parser` ins Leere laufen. Legen Sie den Parser fest und testen Sie gegen gespeicherte Seiten.
- **Ungültiges JSON.** JSON ist streng. [RFC 8259](https://www.rfc-editor.org/rfc/rfc8259) definiert die Grammatik, und nachgestellte Kommas, einfache Anführungszeichen und Kommentare gehören nicht dazu. Eine häufige Ursache hat mit JSON gar nichts zu tun: Der Server hat eine HTML-Fehlerseite oder einen leeren Body geliefert, und der JSON-Parser scheitert am ersten Zeichen.
- **Doppelte Schlüssel.** Laut RFC 8259 ist das Verhalten des Empfängers unvorhersehbar, wenn sich Namen in einem Objekt wiederholen. Pythons [json-Modul](https://docs.python.org/3/library/json.html) behält ohne Fehlermeldung den letzten Wert, sodass `{"price": 10, "price": 12}` stillschweigend zu `12` wird.
- **CSV-Quoting und Trennzeichen.** Ein Komma im Produktnamen teilt ein Feld in zwei, wenn es nicht in Anführungszeichen steht. [RFC 4180](https://www.rfc-editor.org/rfc/rfc4180) beschreibt die übliche Quoting-Konvention, ist aber nur informativ, und viele Exporte verwenden Semikolons oder Tabs. Nutzen Sie eine CSV-Bibliothek, niemals `line.split(",")`.
- **Länderspezifische Zahlen und Datumsangaben.** `1.249,00` ist in Deutschland über tausend, in einem naiven Parser dagegen ungefähr eins; `03/04/2026` ist je nach Land März oder April. Parsen Sie mit einem ausdrücklichen Format pro Quelle.
- **Schema Drift.** Die Website benennt eine Klasse um oder verschiebt den Preis in ein neues Element, und der Parser läuft weiter, liefert aber `None` oder einen falschen Wert. Nichts stürzt ab, und genau das macht diesen Fehler am teuersten. Pflichtfeldprüfungen wie die Liste `problems` oben machen aus stillem Drift eine sichtbare Zahl.
- **Inhalte, die nicht im HTML stehen.** Manche Seiten bauen ihren Inhalt erst nach dem Laden per JavaScript auf, die Daten waren also nie in der heruntergeladenen Datei. [Statische und dynamische Seiten beim Web Scraping](/de/blog/static-vs-dynamic-pages) zeigt, wie Sie das erkennen.

## Parser selbst bauen oder einkaufen?

Für Standardformate schreiben Sie den Low-Level-Parser nie selbst; die Bibliotheken sind ausgereift. Die Entscheidung betrifft die Extraktionsschicht darüber: Selektoren, Umwandlungen und Prüfungen pro Website.

**Bauen Sie selbst, wenn** Sie eine überschaubare Zahl von Quellen haben, die sich selten ändern. Eigener Code ist transparent, kostet nichts pro Seite und lässt sich leicht gegen gespeicherte Beispiele testen.

**Nutzen Sie ein fertiges Tool oder einen Dienst, wenn** Sie Hunderte Websites mit häufig wechselndem Layout verfolgen oder die Eingabe gar kein festes Layout hat, etwa bei E-Mails und PDFs. Sie zahlen nach Volumen oder pro Nutzer und nehmen weniger Kontrolle über die Ausgabe in Kauf.

**Ein hybrider Ansatz ist verbreitet:** offizielle APIs oder eingebettetes JSON, wo vorhanden, handgeschriebene Parser für die wichtigsten Quellen, ein modellbasierter Fallback für den Long Tail und für alle drei derselbe Validierungsschritt vor der Speicherung.

## Wo Parsing eingesetzt wird

- **Datenerhebung im großen Maßstab.** Jede Scraping-Pipeline parst zwischen Download und Datenbank; siehe [Data Scraping](/de/data-scraping).
- **Crawler und Website-Audits.** Ein Crawler parst jede Seite nach Links und Metadaten; siehe [Web Crawler](/de/web-crawler).
- **Preisbeobachtung.** In Zahlen geparste Preise lassen sich über die Zeit vergleichen, wie bei der [Preisbeobachtung von Wettbewerbern](/de/blog/competitor-price-tracking).
- **Änderungsüberwachung.** Wer geparste Felder statt rohem HTML vergleicht, vermeidet Fehlalarme durch Werbung und Zeitstempel; siehe [Website auf Änderungen überwachen](/de/blog/website-change-monitoring).
- **Analyse.** Typisierte Datensätze sind der Ausgangspunkt für die Mustersuche; siehe [Data Mining: Verfahren, Anwendung und Datenbeschaffung](/de/blog/what-is-data-mining).
- **Logs und Sicherheit.** Logzeilen werden in Zeitstempel, IP-Adresse, Status und Pfad zerlegt, bevor jemand Fehler zählen kann.

## Häufige Fehler

- **Während der Entwicklung die Live-Website parsen.** Speichern Sie einige echte Seiten auf der Festplatte und schreiben Sie den Parser gegen diese: weniger Anfragen an die Website, wiederholbare Tests.
- **Regex auf ganze HTML-Dokumente anwenden.** Parsen Sie zuerst den Baum und setzen Sie Regex nur im Text eines einzelnen Feldes ein.
- **Preise als Text oder Float speichern.** Wandeln Sie früh in `Decimal` oder ganzzahlige Cent um und behalten Sie den Rohstring für die Fehlersuche.
- **Jede Exception verschlucken.** Ein nacktes `try/except: pass` verdeckt Schema Drift. Sammeln Sie Fehler mit der Datensatz-ID und prüfen Sie nach jedem Lauf die Anzahl.
- **Das eingebettete JSON ignorieren.** Viele Produktseiten enthalten JSON-LD mit denselben Werten in saubererer Form als das sichtbare HTML.
- **Dem Parser blockierte Anfragen anlasten.** Ist das „HTML“ eine Sperrseite oder ein 429-Fehler, passt kein Selektor. Prüfen Sie den Statuscode vor dem Parsen und drosseln Sie das Tempo, wenn die Website darum bittet.

## Entscheidungshilfe

| Ihre Eingabe | Empfohlener Ansatz |
|---|---|
| Eine API, die JSON liefert | Die API nutzen; mit der Standard-JSON-Bibliothek parsen und Pflichtfelder validieren |
| Statische HTML-Seiten weniger Websites | BeautifulSoup mit `lxml` oder Cheerio in Node.js, dazu CSS-Selektoren |
| Seiten, die Inhalte per JavaScript rendern | Zuerst nach eingebettetem JSON oder der API der Website suchen; Headless-Browser nur bei Bedarf |
| CSV- oder Tabellenexporte | Eine CSV-Bibliothek oder pandas, mit ausdrücklich gesetztem Trennzeichen und Encoding |
| Serverlogs mit festem Layout | Regex pro Zeile oder ein Log-Parser, danach Felder in Typen umwandeln |
| Ein eigenes Textformat unter Ihrer Kontrolle | Ein grammatikbasierter Parser (ANTLR, Lark) |
| E-Mails, PDFs, Freitext ohne Layout | Ein modellbasierter Extraktor mit strikter Validierung der Ausgabe |
| Hunderte Websites mit wechselndem Layout | Ein kommerzieller Parsing-Dienst oder ein hybrider Aufbau |

## Häufige Fragen

### Was ist Data Parsing, einfach erklärt?

Rohtext wird eingelesen und in beschriftete Teile zerlegt, mit denen ein Programm arbeiten kann. Hinein geht eine Webseite, heraus kommt ein Datensatz mit Name, Preis und Lagerstatus.

### Was ist der Unterschied zwischen Parsing und Scraping?

Scraping lädt Inhalte von einer Website herunter; Parsing macht aus diesen Inhalten strukturierte Daten. Ein Scraper ohne Parser hinterlässt Ihnen nur rohe HTML-Dateien.

### Welche Python-Bibliothek wird zum Parsen von HTML verwendet?

Am weitesten verbreitet ist BeautifulSoup; es arbeitet auf `html.parser`, `lxml` oder `html5lib`. `lxml` lässt sich auch direkt nutzen und unterstützt XPath. Für JSON genügt das eingebaute Modul `json`.

### Kann ich HTML mit regulären Ausdrücken parsen?

Nur für sehr kleine, flache Textstücke. HTML ist verschachtelt und oft fehlerhaft, und ein regulärer Ausdruck kann keiner Verschachtelung folgen. Parsen Sie die Seite mit einem HTML-Parser und setzen Sie Regex bei Bedarf innerhalb eines einzelnen Feldes ein.

### Warum liefert mein Parser plötzlich leere Werte?

Meist hat die Website ihr Markup geändert, und Ihre Selektoren greifen nicht mehr. Weitere Ursachen: eine Fehlerseite statt des Inhalts oder Inhalte, die erst später per JavaScript geladen werden.

### Brauche ich einen Proxy, um Daten zu parsen?

Das Parsing selbst läuft auf Ihrem eigenen Rechner und braucht keinen Proxy. Proxys spielen auf der Abrufseite eine Rolle: wenn ein Scraper öffentliche Seiten in großem Umfang sammelt oder eine Seite so sehen muss, wie Besucher in einem anderen Land sie sehen. Mit [Residential-Proxy](https://proxynet.io/de/residential-proxy) wählen Sie Land und Stadt, [Rotierender Proxy](https://proxynet.io/de/rotating-proxy) verteilt Anfragen auf verschiedene Adressen; halten Sie sich in beiden Fällen an die Nutzungsbedingungen und Rate Limits der jeweiligen Website.

## Fazit

Data Parsing macht aus roher Eingabe strukturierte, typisierte Datensätze: Ein Tokenizer zerlegt den Text in Teile, ein Parser ordnet sie nach den Regeln des Formats, und Ihr Code wählt die benötigten Werte aus, wandelt sie um und prüft sie. Wählen Sie den Parser nach der Eingabe und beschränken Sie Regex auf einzelne Felder. Der größte Teil der Arbeit in einem echten Projekt steckt in den Fehlerfällen, vor allem im Schema Drift, den keine Fehlermeldung ankündigt. Validieren Sie deshalb jeden Datensatz und zählen Sie die Fehler nach jedem Lauf. Wenn Sie auf der Abrufseite Adressen in bestimmten Ländern brauchen, finden Sie sie in unseren [Proxy-Diensten](/de/proxy).
