Einstieg in Python für Anfänger mit Beispielen | Webseite Inhalt auslesen

1a3ee63135b3408fbfc865e1fc4fd53d

Python ist eine universelle höhere Programmiersprache. Das Erlernen fällt Anwendern mit Grundwissen in Sprachen wie PHP nicht schwer. Python verfügt über eine riesige Standardbibliothek, weshalb die Sprache für viele Anwendungen geeignet ist.

Vorhaben: Daten aus Webseiten auslesen, sammeln

Für eine Reise-Website möchte ich ein kleines Script schreiben, dass Kraftstoff-Preise von einer fremden Website ausließt, sie verarbeitet und anschließend in einer WordPress-Webseite formatiert wieder ausgibt.

Bisher erledigte ich derartige Aufgaben mit PHP. Einfach ein PHP-Script schreiben, auf den Server laden und dann mit dem Browser aufrufen. Oder von einer WordPress-Website aufrufen lassen. Doch wie funktioniert das mit Pythons? Ebenfalls ein (Python) Skript schreiben, auf den Server laden und mit dem Browser aufrufen?

Das fertige Python Skript soll in maximal 3 Tagen stehen und einsatzbereit sein. Denn solang würde es wohl dauern, bis ich im Internet eine vergleichbare, fertige und kostenlose Lösung zum Einbinden von ortsbezogenen Benzin- und Dieselpreisen aus der EU finde – falls solch eine Seite mit einer freien API existiert.

Aber der Reihe nach ….

Läuft Python bei jedem Hoster/ Server?

Python wird von Webspace-Hostern und Serveranbieter genauso unterstützt wie PERL oder PHP, was zunächst das Grundsätzliche betrifft. Technisch gesehen spricht nichts für die Nutzung von Python-Skripten in den allermeisten Webhosting-Angeboten. Dabei ist es egal, ob du bei STRATO, 1und1 (IONOS) oder RÜBEZAHL deine Webseite liegen hast.

Wenn du bereits eine Homepage bei einem Website-Hoster hast, erübrigt sich die Frage nach einem geeigneten Webhoster für Python-Skripte, denn Python „verstehen“ sie alle. Die Feinheiten liegen im Detail. Für den Anfang musst du bei kleineren Skripten nicht gleich den Server wechseln und mit deinem ganzen WordPress zu einem anderen Hoster umziehen.

Die „Feinheiten“ liegen bei der Frage, wie dein Hoster Python einbindet. Die meisten Hoster binden in ihren Webspace-Paketen Python per CGI Schnittstelle ein. Das ist langsam, weil für jede Anfrage der Python-Interpreter neu gestartet werden muss. Aber funktioniert bei kleinen Seiten, die nicht zu viele Besucher haben. Besser sind Kunden dran, deren Hosting-Anbieter den Apache HTTP-Server mit dem Modul mod_python laufen haben. Dieses Modul bindet – einfach gesagt – den Python-Interpreter dauerhaft ein, er muss so nicht bei jedem Aufruf einer Python-Datei neu gestartet werden.

Noch besser sind Anbieter, die ihren Apache Server mit dem Modul mod_wsgi betreiben, dem Nachfolger von mod_python. Wieso? Das erfährst Du in dem Link zum Modul.

Kurz gesagt: „Grundsätzlich läuft Python überall – bis zu einem gewissen Grad. Zum Üben mit kleinen Scripten ist jeder Host-/Server Anbieter okay. Erst wenn Du viele Besucher hast und viele Pythons-Scripte täglich, stündlich aufgerufen werden müssen – wird die Frage nach einem gutem „Python-Hoster“ relevant“.

Python auf deinem Computer installieren

firefox 2022 04 27 20 25 27

Wenn Du erst einmal nur Python testen, probieren und herumexperimentieren möchtest, installierst du am besten die aktuelle Python-Version von der Website python.org auf deinem Windows oder MAC-Computer.

Über diesen Link lädst du nicht wirklich Python herunter, sondern einen Python-Interpreter.

ACHTUNG: Die Windows-Python Version 3.10.4 läuft nur ab Windows 8.1 oder mit Windows 8 oder Windows Server 2012. Die letzte Python-Version für Windows 7 ist die Python 3.8.10!

Auch bei mir läuft noch Windows 7. Der Grund ist darin zu finden, dass vereinzelte, ehemals teuer erkaufte Software nicht mehr aktualisiert wird und nicht mit neueren Windows-Versionen funktioniert.

Ich lud zunächst folgende Datei herunter:

Einbettbares Windows-Paket herunterladen (64-Bit)

Lade dein „Python“ herunter, entpacke die ZIP-Datei, suche anschließend die Datei pyhton.exe und rufe sie mit einem Doppelklick auf. Was du jetzt in Bild 1 zu sehen bekommt, ist die Oberfläche des Interpreters. Wenn du, wie in Bild 2, den folgenden Befehl eintippst (reinkopieren geht nicht):

print('Das ist meine erste Ausgabe mit Python!')

…, spuckt der Interpreter dir in dem Fenster aus:

„Das ist meine erste Ausgabe mit Python!“

So richtig Hammer und nützlich ist das nicht, aber es ist deine erste Zeile „Python“.

Du möchtest nicht nur einen einzelnen Python-Befehl abarbeiten, sondern ein ganzes Python-Skript laufen lassen auf deinem Computer?

Installiere die Python-IDLE (Integrated Development and Learning Environment)

Der nackte Interpreter ist spartanisch und im Grunde zu nichts zu gebrauchen. Du benötigst die „Integrated Development and Learning Environment“, kurz IDLE genannt. Auf der Windows-Seite von Python klickst du deshalb auf den Link:

Laden Sie das Windows-Installationsprogramm herunter (64-Bit)

Wenn Du in Windows 7 nun nach „Python“ suchst, bekommst Du folgende Einträge angezeigt.

explorer 2022 04 27 21 33 07
  • python
  • python 3.8 (64 bit)
  • Zu den Python 3.8 Manuals und Python 3.8 Module Docs komme ich später.
  • IDLE (Python 3.8 64-bit).

Interessant ist die IDLE. Diese „Integrated Development and Learning Environment“ erlaubt es uns auf unserem Computer mit der Programmiersprache Pythons zu spielen und Programme ohne Internet-Server zu testen.

Das Menü der Python-IDLE

Wie du siehst, ist die IDLE erheblich komfortabler als der nackte Interpreter. Mit einem beliebigen Text-Editor kannst du ein paar Zeilen Python-Code schreiben, speichern und zur Verarbeitung in die IDLE laden.

Wenn Du nur mal schnell auf deinem Computer ein Python-Skript testen möchtest, ist die Python-IDLE optimal.

Im ersten Bild öffnest Du eine Python-Datei. In der zweiten Abbildung führst du das Skript aus. Das im dritten Bild erschienen Fenster kannst Du in diesem Fall ignorieren, drück einfach auf OK.

Module & Bibliotheken installieren

Die Standardbibliothek von Python beinhaltet nur die allerwichtigsten Module, Funktionen. Möchtest Du jedoch beispielsweise eine Website aufrufen, musst du zunächst das dafür zuständige Modul installieren. In diesem Fall ist es das Modul „requests“.

pip3 install requests # Modul requests wird installiert

Voraussetzung ist natürlich, dass das Modul pip3 zuvor in Python eingebunden wurde. Bei neueren Python-Versionen geschieht dies aber automatisch bei der Installation von Python. Weiterführende Informationen zum pip findest Du bei wiki.ubuntuusers.de/pip/

Fehlermeldung: ModuleNotFoundError

pythonw 2022 05 01 16 25 43 1

Bisher ging es um wirklich simple Code-Beispiele. Erste Probleme wirst Du eventuell bekommen, wenn ein Modul oder eine Bibliothek eingebunden werden soll.

Mein kleines Testskript „my_request.py“ möchte das Modul requests importieren. Doch was passiert? Der Pythoninterpreter meint:

ModuleNotFoundError: No module named ‚requests‘

Um es kurz zu machen: Das Modul existiert auf meinem PC, doch der Interpreter findet es nicht, sucht in einem falschen Verzeichnis. Wie Du dieses Problem erfolgreich löst, findet du in diesem Artikel. Die Fehleranalyse kostet mich mehrere Tage, derartige Probleme werden in den vielen Lobreden auf Python nicht erwähnt und am Ende steht der enthusiastische Einsteiger vor frustrierenden Problemstellungen.

Schöne Trockenübung, aber wie lernt Python schwimmen?

Okay, schön und gut. Ich will aber nicht auf meinem PC wie ein Solo-Tänzer Runden vor einem Spiegel drehen, sondern in der „realen“ Welt Daten externer Webseiten (legal) einlesen, auswerten und formatiert wieder ausgeben. Wie bekomme ich in meinem Webspace, auf meiner Website, in WordPress … ein Python Script zum Laufen? Wie kann ich es in ein PHP-Skript einbinden und eine Ausgabe erzeugen?

Im Internet fand ich sehr viele Seiten für „Einsteiger“, aber irgendwie war nichts für mich dabei. Ich möchte nicht lesen, warum Python die weltweit beste Sprache ist, warum viele große Unternehmen Python nutzen oder wie ich auf meinem Windows-PC „Hallo Welt“ ausgeben kann.

Ich will wissen, wie ich von einer fremden Website Daten auslesen kann. Zunächst per Python-Interpreter auf meinem Windows-PC, später als Applikation in einer meiner WordPress-Webseiten.

Und ich hoffe natürlich, dass Python sich gegenüber PHP als Gewinn beweist. Denn mal ehrlich: Mit PHP realisiere ich derartigen Aufgeben im „Schlaf“, mit wenigen Codezeilen wird Ebay, Amazon & Co. Ausgelesen.

Du siehst, ich bin skeptisch. Was kann Python besser, das bei PHP „umständlich“ wäre? Am Ende meines Beitrages (oder Artikelserie, wer weiß schon jetzt, wo die Reise am Ende hinführt) werde ich die gestellte Aufgabe – eine Website nach Produktpreisen durchsuchen – mit PHP und PYTHON realisieren und gegenüberstellen.