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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge5 [2021/02/25 10:06] Ivo Blöchligerlehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge5 [2021/03/04 12:36] (current) – [Beispiel: Spiele des FC St. Gallen] Ivo Blöchliger
Line 1: Line 1:
 +====== Datenextraktion mit Regular Expressions in Python ======
 +===== Beispiel: Spiele des FC St. Gallen =====
 +<WRAP todo>
 +  * Besuchen Sie die Seite https://www.fcsg.ch/home/saison/1--mannschaft/resultate/
 +  * Schauen Sie sich den HTML-Code der Seite an (Ctrl-U) und suchen Sie darin die Resultate
 +  * Speichern Sie die Seite (nur den HTML-Code) unter dem Namen ''resultate.html''.
 +  * Öffnen Sie die Seite in Notepad++, damit Sie eine Übersicht über den HTML-Code haben.
 +  * Kopieren Sie folgendes Code-Skellett nach TigerJython und speichern Sie die Python-Datei im gleichen Ordner wie die obige html-Datei.
 +<code python>
 +import re        # Regular Expressions
  
 +f = open("resultate.html"  # Datei zum Lesen öffnen
 +html = f.read()              # Alles einlesen (ohne als json zu interpretieren). Man erhät einfach eine (sehr lange) Zeichenkette.
 +f.close()                    # Datei schliessen
 +
 +html = html.replace("\n","") # Alle Zeilenumbrüche löschen (werden von . nicht gematcht)
 +
 +spiele = re.findall(r"<div class=\"match\">(.*?)</div></div></div></div>", html)
 +
 +for s in spiele:
 +  print(s)
 +
 +  # Die gewünschten Daten mit weiteren Regular Expressions auslesen, z.B Datum und Score:
 +  datum = re.findall(r"match-date\".(.*?)</strong.*?score\">(.*?)<", s)[0]  # Nur das erste Regex-Match (mehr sollte es sowieso nicht geben)
 +  print(datum)
 +  print("\n\n\n")
 +</code>
 +
 +
 +</WRAP>