Mit Python und Selenium: Corona-Daten vom RKI-Dashboard scrapen

Dynamische Webseiten sind schwer zu scrapen. Über Selenium automatisieren Sie einen kompletten Browser und holen sich damit auch Daten hinter Javascript-Code.

Lesezeit: 10 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 18 Beiträge

Das Corona-Dashboard vom RKI

(Bild: Screenshot)

Von
  • Marvin Strathmann
Inhaltsverzeichnis

Fußballergebnisse, aktuelle Nachrichten oder Wetterberichte – Daten aus dem Web lassen sich mit Python und den Bibliotheken BeautifulSoup und Requests recht simpel ins eigene Programm holen. Die Informationen können Sie dann aufbereiten und in das Format bringen, das Sie gerade benötigen.

Dieser Ansatz funktioniert aber nur bei statischen Websites. Sobald Javascript ins Spiel kommt, wird es kompliziert. Dann stehen die Daten nicht in einem einfach auslesbaren div-Element, sondern sie werden oft dynamisch geladen, etwa nachdem Sie auf einen Button geklickt, ein Häkchen gesetzt oder Text in eine Suche eingegeben haben. Wenn Sie trotzdem dynamische Webinhalte scrapen möchten, hilft Selenium.

Selenium ist eigentlich ein kostenloses Framework, um Webanwendungen automatisiert zu testen. Wenn etwa ein Tester bei jede Änderungen nicht dauernd dasselbe Webformular neu ausfüllen möchte, dann gibt er Selenium die Befehle vor und das Framework leitet sie an einen gewünschten Browser weiter. Mit dieser Vorgehensweise können Sie nicht nur Webanwendungen testen, sondern auch Javascript-Webseiten scrapen, etwa das Corona-Dashboard des Robert-Koch-Instituts (RKI). So holen Sie sich aktuelle regionale Corona-Daten für Ihren Landkreis, ohne die quälend langsame Website selbst besuchen zu müssen.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 12,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+