3.4 Herunterladen der Inhalte der Website (II) ‐Trafilatura - mkappus1/DatenmanagementMTHS24 GitHub Wiki
In Übung 4 haben wir gesehen, dass der Download mit den MTUOC-Skripten zwar funktioniert, das Resultat aber eine sehr komplexe Ordnerstruktur ist. Daher schauen wir uns noch ein alternatives Werkzeug für den Download von Inhalten von Webseiten an. Das Tool heisst trafilatura und ist ein Open-Source-Tool in Python, das speziell für das Webscraping entwickelt wurde, um Inhalte von Webseiten effizient zu extrahieren.
- trafilatura installieren
- Inhalt einer einzelnen Webseite herunterladen
- Inhalte mehrerer Webseiten herunterladen (anhand einer Liste von Links wie z.B. einer Sitemap)
trafilatura installieren
So installieren Sie trafilatura mit pip:
- Öffnen Sie ein Terminal oder eine Eingabeaufforderung. Eine Einführung in die Verwendung der Befehlszeile finden Sie in hier.
- Geben Sie den folgenden Befehl ein:
pip install trafilatura
(oderpip3 install trafilatura
odersudo pip install trafilatura
) - Drücken Sie die Eingabetaste: pip lädt trafilatura und seine Abhängigkeiten herunter und installiert sie.
Um zu prüfen, ob trafilatura korrekt installiert wurde können Sie nach der Installation den Befehl
pip show trafilatura
eingeben. Wenn die Installation erfolgreich war, zeigt dieser Befehl dir Informationen über die installierte Version und den Installationspfad an:
Da trafilatura konstant weiterentwickelt wird, ist es sinnvoll in regelmässigen Abständen, die Installation zu aktualisieren: Upgrade starten mit:
$ pip install --upgrade trafilatura
Letzte Version erzwingen$ pip install --force-reinstall -U git+https://github.com/adbar/trafilatura
Den Inhalt einer einzelnen Datei mit trafilatura herunterladen
Wenn trafilatura korrekt installiert wurde kann das Tool direkt über die Kommandozeile (im terminal) oder über entsprechende Pythonskripts aufgerufen werden. Hier schauen wir uns zunächst den Aufruf über die Kommandozeile an.
Wenn Sie in der Kommandozeile den Befehl trafilatura -u "https://www.zhaw.ch/de/linguistik/institute-zentren/iued/"
eingeben, werden Ihnen im Kommandozeilenfenster die Inhalte der Webseite angezeigt.
Um den Inhalt der Webseite nicht nur im Terminal anzuzeigen, sondern ihn in eine Datei zu schreiben, können Sie folgenden Befehl benutzen:
trafilatura -u "https://www.zhaw.ch/de/linguistik/institute-zentren/iued/" > IUED.txt
Der >
-Operator in Unix (Ausgabeumleitung) ist wie ein „Speicherbefehl“. Er nimmt das, was im Terminal ausgegeben wird, und „schreibt“ es in eine Datei, anstatt es auf dem Bildschirm zu zeigen. In diesem Fall wird der Inhalt der Webseite in einer (neuen) Datei mit dem Namen IUED.txt gespeichert.
Falls die Datei (hier IUED.txt) schon existiert, überschreibt >
-Operator die Datei. Wenn Sie also denselben Befehl noch einmal ausführen, wird der alte Inhalt der Datei gelöscht und durch den neuen ersetzt.
Um Inhalte an eine bestehende Datei anzuhängen, können Sie den >>
-Operator verenden. Er funktioniert ähnlich wie der >
-Operator, hängt aber den neuen Inhalt an das Ende der Datei an, ohne den alten Inhalt zu löschen. Der Befehl
trafilatura -u "https://www.zhaw.ch/en/linguistics/institutes-centres/iued-institute-of-translation-and-interpreting/" >> IUED.txt
fügt in der Datei IUED.txt also zum Inhalt der deutschsprachigen Seite den Inhalt der englischsprachigen Seite hinzu.
Übung/Aufgabe 5: Laden Sie die Inhalte der IUED Startseite in allen 4 verfügbaren Sprachen in eine einzige Textdatei herunter. Geben Sie die Textdatei unter Abgabe Aufgabe5 auf Moodle ab.
Inhalte mehrerer Webseiten herunterladen (anhand einer Liste von Seiten wie z.B. einer Sitemap)
Auch mit trafilatura ist es möglich mehrere Webseiten anhand einer Liste von URLs herunterzuladen. Dazu muss zunächst eine solche Liste manuell oder mit den Methoden aus Abschnitt 3.2. erstellt werden. Dann muss diese Datei als Inputdatei und Verzeichnis für das Speichern der Ausgabedateien im Befehl in der Kommandozeile angegeben werden. Dafür sind die folgenden beiden Kommandozeilenargumente notwendig:
-i
oder--input-file
, um eine Eingabeliste auszuwählen, aus der Links gelesen werden sollen. Diese Option ermöglicht das Herunterladen und Verarbeiten einer Liste von URLs aus einer Datei, die einen Link pro Zeile enthält. Die Eingabeliste wird sequentiell gelesen, es werden nur Zeilen gelesen, die mit einer gültigen URL beginnen, die Datei kann also andere Informationen enthalten, die verworfen werden.-o
oder--output-dir
, um ein Verzeichnis zu definieren, in dem die Ergebnisse gespeichert werden sollen. Das Ausgabeverzeichnis kann bei Bedarf erstellt werden, muss aber beschreibbar sein.
Der Befehl trafilatura -i zhaw-links-kurz.txt -o txtfiles/
liest also die Liste der in der Datei zhaw-links-kurz.txt angegeben Links und lädt die Inhalte der entsprechenden Dateien in einzelnen Textdateien im Verzeichnis txtfiles herunter.
Übung/Aufgabe 6: Erstellen Sie für zwei der verfügbaren Sprachen von der Startseite des IUED mit Link Gopher je eine Liste der Links auf der Seite. Speichern Sie die Links in je einer Textdatei pro Sprache. Kürzen Sie die beiden Dateien so, dass sie jeweils nur noch 15 (beliebige) Links enthalten (idealerweise mit parallelen Inhalten). Laden Sie die Inhalt der verlinkten Seiten mit trafilatura in ein eigenes Verzeichnis pro Sprache herunter. Navigieren Sie in die jeweiligen Ordner, den Sie als Output Ordner angegeben haben und führen Sie die entstandenen Textdateien mit dem Befehl cat *.* >> IUED-DE.txt
in einer Textdatei pro Sprache (hier als Beispiel mit dem Namen _IUED-DE.txt) zusammen. Geben Sie die pro heruntergeladener Sprache die zusammengeführte Text-Datei mit den Inhalten der 15 Seiten unter Abgabe Aufgabe 6 auf Moodle ab.
Anhang zu Woche 3: Trafilatura - eine Python-Bibliothek für das Web-Crawling
- Weitere Optionen für die Kommandozeile für trafilatura
- Ausführliche Anleitung zu Trafilatura
- Web crawling mit Trafiltaura
- Videoanleitung zu Trafilatura von Simon Meier-Vieracker (TU Dresden)