Bash:
HTML Parsen

Hoe:

Bash is niet de eerste keuze voor het parsen van HTML, maar het is mogelijk met tools zoals grep, awk, sed, of externe hulpprogramma’s als lynx. Voor robuustheid gebruiken we xmllint uit het libxml2-pakket.

# Installeer xmllint indien nodig
sudo apt-get install libxml2-utils

# Voorbeeld HTML
cat > voorbeeld.html <<EOF
<html>
<head>
  <title>Voorbeeldpagina</title>
</head>
<body>
  <h1>Hallo, Bash!</h1>
  <p id="mijnPara">Bash kan mij lezen.</p>
</body>
</html>
EOF

# Parse de Titel
titel=$(xmllint --html --xpath '//title/text()' voorbeeld.html 2>/dev/null)
echo "De titel is: $titel"

# Paragraaf extraheren op ID
para=$(xmllint --html --xpath '//*[@id="mijnPara"]/text()' voorbeeld.html 2>/dev/null)
echo "De inhoud van de paragraaf is: $para"

Output:

De titel is: Voorbeeldpagina
De inhoud van de paragraaf is: Bash kan mij lezen.

Diepgaand

Vroeger gebruikten programmeurs regex-gebaseerde tools zoals grep om HTML te scannen, maar dat was omslachtig. HTML is niet regulier - het is contextueel. Traditionele tools missen dit en kunnen foutgevoelig zijn.

Alternatieven? Genoeg. Python met Beautiful Soup, PHP met DOMDocument, JavaScript met DOM-parsers—talen met bibliotheken die zijn ontworpen om de structuur van HTML te begrijpen.

Het gebruik van xmllint in bash-scripts is solide voor eenvoudige taken. Het begrijpt XML, en daarmee, XHTML. Gewone HTML kan echter onvoorspelbaar zijn. Het volgt niet altijd de strikte regels van XML. xmllint dwingt HTML in een XML-model, wat goed werkt voor goed gevormde HTML, maar kan struikelen over rommelige zaken.

Zie Ook