lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4

This is an old revision of the document!


Regular Expressions und HTML-Dateien

Aus einer HTML-Datei sollen die Links mit verlinktem Text extrahiert werden. Beispiel:

<a href="https://fginfo.ksbg.ch/">Fachgruppe Informatik</a>

Der HTML-Tag <a> definiert einen Link. Im Attribut href steht die URL (Web-Adresse). Der verlinkte Text steht danach (beendet durch ein </a>).

Das gewünschte CSV-Format ist folgendes:

Fachgruppe Informatik;https://fginfo.ksbg.ch/

Die Idee ist natürlich, die Umwandlung in einem Aufwasch für die ganze Datei zu erledigen.

  • Wir folgende HTML-Datei: page.html, die Sie bitte herunterladen und in NotePad++ öffnen.
  • Löschen Sie bitte alle Zeilen, die die Zeichenkette <a href= nicht enthalten. Machen Sie eine Internetsuche (am besten auf Englisch), wie Sie vorgehen können.
  • Man stellt fest, dass es Zeilen gibt, die noch mehr als einen Link enthalten. Wir werden darum <a href durch \n<a href. Dazu muss im “Search Mode” “Extended” oder “Regular Expression” aktiviert sein.
  • Löschen Sie abermals die Zeilen, die <a href nicht enthalten.
  • Führen Sie nun folgende Ersetzung durch, wobei der “Search Mode” auf “Regular Expression” gesetzt werden muss:
    • Ersetzen Sie <a href=“(.*?)”.*?>(.*?)</a.* durch $2;$1
  • Man stellt fest, dass im Text noch Strichpunkte vorkommen. Diese stehen aber beim &quote;, was für Anführungszeichen steht. Man hat jetzt zwei Möglichkeiten:
    • Entweder Sie ersetzen &quote; durch oder
    • Sie machen obige Ersetzung rückgängig und ersetzen statt dessen mit “$2”;”$1“.
  • Als letztes vervollständigen sie die Links durch https://fginfo.ksbg.ch durch eine geeignete Ersetzung.
  • Speichern Sie die Datei als links.csv und öffnen Sie diese mit Excel. Welches Problem gibt es noch?
  • Schliessen Sie Excel wieder (sonst kann die Datei links.csv mit Notepad++ nicht wieder gespeichert werden).
  • In Notepad++ und Encoding → Convert to ANSI und speichern Sie wieder.
  • Öffnen Sie die Datei noch einmal mit Excel und überprüfen Sie, ob das Problem weiter besteht.

Lösungsvorschläge

Lösungsvorschläge

  • Das Encoding gibt an, wie Buchstaben (insbesondere Sonderzeichen wie ä, é etc.) codiert, d.h. binär dargestellt werden.
  • Praktisch alle Webseiten und Computersysteme verwenden heute (und schon seit langem) das universelle UTF-8, ausser natürlich Microsoft Windows :-/
  • lehrkraefte/blc/informatik/glf4-20/umgang-mit-dateien/challenge4.1614160737.txt.gz
  • Last modified: 2021/02/24 10:58
  • by Ivo Blöchliger