Kapitel 23
Internet-Programmierung
638
#10: Die Liste schlange wird mit der Pfadbezeichnung des Wurzelverzeichnisses initiali-
siert.
#11: Nach Ausführung der Breitensuche wird die FTP-Verbindung geschlossen.
#12: Falls das Login auf dem Server erfolglos war, wird eine Fehlermeldung in das Text-
Widget der Benutzungsoberfläche eingefügt.
#13: Der Verzeichnisbaum auf dem FTP-Server wird nach dem Algorithmus Breitensuche
durchlaufen. Dieser Standardalgorithmus funktioniert im Prinzip so:
Die Liste schlange enthält zu Beginn das Startverzeichnis.
Solange schlange nicht leer ist, tue Folgendes:
Entnimm das erste Element (Pfad zu einem Verzeichnis) aus schlange. Dieses ist
das aktuelle Verzeichnis.
Untersuche das aktuelle Verzeichnis und füge alle gefundenen Unterverzeichnisse
(bzw. deren vollständige Pfade) an das Ende der Liste an. (Die Pfadbezeichnungen
»
.« und »..« werden ignoriert.)
#14: An dieser Stelle wird die Länge der Liste schlange auf höchstens zehn Elemente
begrenzt. Damit soll (unter Berücksichtigung der Netiquette) eine allzu lange Login-Zeit auf
dem Server verhindert werden.
#15: Die Methode nimmt eine Liste von Verzeichniseinträgen (dir) als Eingabe und gibt ein
Tupel aus zwei Listen zurück: Die erste Liste enthält gefundene Unterverzeichnisse und die
zweite Liste Dateien, in deren Namen das Suchwort vorkommt. Die Listenelemente sind
jeweils vollständige Pfade.
23.3 Zugriff auf Webseiten mit HTTP
HTTP (Hypertext Transfer Protocol) ist das Protokoll für die Übertragung von Seiten aus dem
World Wide Web (WWW). Das Python-Modul
http.client enthält (unter anderem) die
Klasse
HTTPConnection, deren Objekte eine Verbindung von einem HTTP-Client zu einem
HTTP-Server repräsentieren. Der Konstruktoraufruf hat folgendes Format:
Dabei ist
host der Domain-Name des Rechners, auf dem der HTTP-Server läuft. Das optio-
nale zweite Argument
port enthält die Port-Nummer, die der Server verwendet (Default ist
80). Tabelle 23.3 enthält die wichtigsten Methoden, die man benötigt, um den Inhalt einer
Webseite von einem entfernten Server herunterzuladen.
HTTPConnection(host[, port])
Methode Erklärung
request(method, url) Sendet Anfrage an den Server unter Verwendung der im ersten
Argument
method angegebenen Anfragemethode ('GET' oder
'POST'). Die Anfrage betrifft die Webseite mit Pfad url.
Tabelle 23.3: Einige Methoden von Objekten der Klasse httplib.HTTPConnection
639
23.3
Zugriff auf Webseiten mit HTTP
Das Abrufen einer Webseite verläuft nach folgendem Schema, das Sie im interaktiven
Modus Schritt für Schritt durchspielen können. In der folgenden Beispielsession wird die
Startseite der Python Software Foundation (URL:
http://www.python.org/index.html)
abgerufen.
Sie stellen die Verbindung mit einem HTTP-Server her und erzeugen ein Verbindungs-
objekt:
Sie schicken eine Anfrage an den Server und teilen ihm die Adresse der gewünschten Seite
mit (Pfad).
Dann wird die Antwort des Servers abgerufen:
Schließlich kann die Antwort nach Belieben ausgewertet und die Verbindung geschlossen
werden.
getresponse() Die Methode wird aufgerufen, nachdem eine Anfrage an den
HTTP-Server geschickt worden ist. Sie liefert ein
HTTP-
Response
-Objekt mit der Antwort des Servers.
close()
Verbindung schließen.
Attribut/ Methode Erklärung
read()
Liefert einen String mit dem Körper des HTTP-Antwortpakets.
status
Status-Nummer (z.B. 404), die vom Server geliefert wird.
reason Kurze verbale Erläuterung des Status (reason phrase).
Tabelle 23.4: Einige Attribute und Methoden von Objekten der Klasse
http.client.HTTPResponse
>>> from http.client import HTTPConnection
>>> verbindung = HTTPConnection('www.python.org')
>>> verbindung.request('GET', '/index.html')
>>> antwort = verbindung.getresponse()
>>> print(antwort.status, antwort.reason)
200 OK
>>> inhalt = antwort.read()
>>> verbindung.close()
>>> print(inhalt)
b'<!DOCTYPE html PUBLIC " ... '
Methode Erklärung
Tabelle 23.3: Einige Methoden von Objekten der Klasse
httplib.HTTPConnection (Forts.)

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.