You are currently viewing Extrahiere den reinen Textinhalt von Webseiten mit diesem einfachen Bash-Skript

Du kennst das sicher: Du möchtest den reinen Text einer Webseite extrahieren, aber die Formatierung und die ganzen HTML-Strukturen und HTML-Elemente machen es schwierig. Keine Sorge, ich habe die Lösung für dich: ein einfaches Bash-Skript, das den gesamten Textinhalt einer URL extrahiert und in einer Datei speichert. In diesem Blogeintrag stelle ich dir das Skript vor und erkläre, wie es funktioniert. Los geht’s!

Mögliche Anwendungsfälle

Es gibt zahlreiche Situationen, in denen dieses Bash-Skript nützlich sein kann. Hier sind einige Beispiele für Anwendungsfälle:

  1. Textanalyse: Wenn du Textinhalte für Analysen sammelst, wie zum Beispiel für Sentiment-Analysen oder Keyword-Recherchen, hilft dir dieses Skript dabei, den reinen Text von Webseiten schnell und einfach zu extrahieren.

  2. Datensammlung für maschinelles Lernen: Wenn du Trainingsdaten für maschinelle Lernalgorithmen benötigst, kann dieses Skript dabei helfen, Textinhalte von verschiedenen Webseiten zu sammeln und sie für die Verarbeitung vorzubereiten.

  3. Inhaltliche Recherche: Wenn du Artikel oder Blog-Beiträge schreibst, kann dieses Skript hilfreich sein, um relevante Textinformationen von verschiedenen Quellen schnell und einfach zu extrahieren, ohne von Ablenkungen auf der Webseite abgelenkt zu werden.

  4. Offline-Lesen: Falls du Textinhalte von Webseiten offline lesen möchtest oder sie für spätere Referenzzwecke speichern willst, ermöglicht dir dieses Skript, den reinen Text schnell und einfach herunterzuladen und in einer übersichtlichen Textdatei zu speichern.

  5. Barrierefreiheit: Für Personen mit Sehbehinderungen kann dieses Skript den Textinhalt von Webseiten extrahieren, sodass er von Screenreadern oder Braillezeilen leichter verarbeitet werden kann.

Dies sind nur einige Beispiele für mögliche Anwendungsfälle. Je nach Bedarf kannst du dieses Skript für viele verschiedene Zwecke einsetzen und an deine individuellen Anforderungen anpassen.

Voraussetzungen

Bevor du anfängst, stelle sicher, dass die folgenden Tools auf deinem System installiert sind:

  1. wget: Ein Tool zum Herunterladen von Webseiten.
  2. pandoc: Ein universeller Dokumentenkonverter, der HTML in reinen Text umwandeln kann.

Du kannst diese Tools unter Debian-basierten Systemen mit dem folgenden Befehl installieren:

sudo apt-get install wget pandoc

Auf MacOS kannst du diese Tools ganz einfach per Homebrew installieren (Homebrew muss natürlich vorher installiert sein):

brew install wget pandoc

Das Bash-Skript erstellen

Erstelle ein neues Bash-Skript mit dem folgenden Code:

#!/bin/bash

# Überprüfen, ob eine URL als Argument angegeben wurde
if [ -z "$1" ]
then
  echo "Bitte geben Sie eine URL als Argument an."
  exit 1
fi

# URL definieren
URL=$1

# URL ohne Protokoll und Doppelpunkte
URL_NO_PROTOCOL=${URL#*//}
URL_NO_COLON=${URL_NO_PROTOCOL//:/}

# Dateinamen aus der URL generieren
OUTPUT_FILE="${URL_NO_COLON//\//-}.txt"

# Die Webseite herunterladen
wget -O temp.html "$URL"

# Die heruntergeladene Webseite mit Pandoc in reinen Text konvertieren
pandoc -s -o $OUTPUT_FILE temp.html -t plain

# Die temporäre HTML-Datei löschen
rm temp.html

# Erfolgsmeldung anzeigen
echo "Der reine Inhalt von $URL wurde in $OUTPUT_FILE gespeichert."

Speichere das Skript als extract_content.sh und mache es ausführbar mit:

chmod +x extract_content.sh

So funktioniert das Skript

Das Skript ist einfach zu verstehen. Hier ist eine Schritt-für-Schritt-Anleitung, wie es funktioniert:

  1. Das Skript überprüft, ob eine URL als Argument angegeben wurde. Wenn nicht, zeigt es eine Fehlermeldung an und beendet sich.
  2. Die URL wird definiert und das Protokoll (http oder https) sowie Doppelpunkte werden entfernt.
  3. Der Dateiname der Textdatei wird aus der URL generiert, wobei Slashes durch Bindestriche ersetzt werden.
  4. Das Skript verwendet wget, um die Webseite herunterzuladen und als temporäre HTML-Datei zu speichern.
  5. Die heruntergeladene HTML-Datei wird mit pandoc in reinen Text konvertiert und in UTF-8 gespeichert.
  6. Die temporäre HTML-Datei wird gelöscht, und eine Erfolgsmeldung wird angezeigt.

So verwendest du das Skript

Um das Skript zu verwenden, öffne ein Terminal und gib den folgenden Befehl ein:

./extract_content.sh https://example.com

Ersetze https://example.com durch die URL der Webseite, von der du den Text extrahieren möchtest. Das Skript extrahiert dann den reinen Textinhalt der angegebenen URL und speichert ihn in einer Textdatei, deren Name aus der URL generiert wird.

Fazit

Mit diesem einfachen Bash-Skript kannst du den reinen Textinhalt von Webseiten extrahieren und in einer Textdatei speichern. Das Skript ist praktisch, leicht verständlich und anpassbar. Du kannst es nach Belieben erweitern, um deine individuellen Anforderungen zu erfüllen.

Das Ergebnis ist nicht perfekt, und du wirst die eine oder andere Zeile manuell aus der Datei entfernen müssen. Da es sich aber um eine reine Textdatei handelt, ist das mit jedem beliebigen Texteditor in wenigen Sekunden erledigt.

Probiere es aus und erlebe, wie es deine Arbeit beim Extrahieren von Textinhalten von Webseiten erleichtert. Viel Spaß beim Ausprobieren!

Dieser Beitrag hat 3 Kommentare

  1. Ralf

    Toller Tipp! Ich bekam leider immer ein `pandoc: *: withBinaryFile: does not exist (No such file or directory)`. Nach etwas Doku lesen und probieren war `pandoc -s -o $OUTPUT_FILE temp.html -t plain` die Lösung.

    1. Wolfgang Wagner

      Danke für das Feedback. Auf was für einem System arbeitest du? Vielleicht auch eine andere pandoc Version als bei mir? Ich habe v3.1.1 installiert.

  2. Ralf

    MacOS 13.3 M1, pandoc 3.1.1 via Homebrew. Die Paketinstallation von pandoc hatte testweise auch nix gebracht.

Kommentare sind geschlossen.