Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Überblick über Python
3 Die Arbeit mit Python
4 Der interaktive Modus
5 Grundlegendes zu Python-Programmen
6 Kontrollstrukturen
7 Das Laufzeitmodell
8 Basisdatentypen
9 Benutzerinteraktion und Dateizugriff
10 Funktionen
11 Modularisierung
12 Objektorientierung
13 Weitere Spracheigenschaften
14 Mathematik
15 Strings
16 Datum und Zeit
17 Schnittstelle zum Betriebssystem
18 Parallele Programmierung
19 Datenspeicherung
20 Netzwerkkommunikation
21 Debugging
22 Distribution von Python-Projekten
23 Optimierung
24 Grafische Benutzeroberflächen
25 Python als serverseitige Programmiersprache im WWW mit Django
26 Anbindung an andere Programmiersprachen
27 Insiderwissen
28 Zukunft von Python
A Anhang
Stichwort

Download:
- ZIP, ca. 4,8 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Python von Peter Kaiser, Johannes Ernesti
Das umfassende Handbuch - Aktuell zu Python 2.5
Buch: Python

Python
gebunden, mit CD
819 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1110-9
Pfeil 20 Netzwerkkommunikation
  Pfeil 20.1 Socket API
    Pfeil 20.1.1 Client/Server-Systeme
    Pfeil 20.1.2 UDP
    Pfeil 20.1.3 TCP
    Pfeil 20.1.4 Blockierende und nicht-blockierende Sockets
    Pfeil 20.1.5 Verwendung des Moduls
    Pfeil 20.1.6 Netzwerk-Byte-Order
    Pfeil 20.1.7 Multiplexende Server – select
    Pfeil 20.1.8 SocketServer
  Pfeil 20.2 Zugriff auf Ressourcen im Internet – urllib
    Pfeil 20.2.1 Verwendung des Moduls
  Pfeil 20.3 Einlesen einer URL – urlparse
  Pfeil 20.4 FTP – ftplib
  Pfeil 20.5 E-Mail
    Pfeil 20.5.1 SMTP – smtplib
    Pfeil 20.5.2 POP3 – poplib
    Pfeil 20.5.3 IMAP4 – imaplib
    Pfeil 20.5.4 Erstellen komplexer E-Mails – email
  Pfeil 20.6 Telnet – telnetlib
  Pfeil 20.7 XML-RPC
    Pfeil 20.7.1 Der Server
    Pfeil 20.7.2 Der Client
    Pfeil 20.7.3 Multicall
    Pfeil 20.7.4 Einschränkungen


Galileo Computing - Zum Seitenanfang

20.3 Einlesen einer URL – urlparse  topZur vorigen Überschrift

Das Modul urlparse ermöglicht es, verschiedene Teile einer URL zu extrahieren, ohne dabei einen unter Umständen außerordentlich komplexen regulären Ausdruck verwenden zu müssen. Im Folgenden werden die Funktionen des Moduls beschrieben.

Um die Beispiele ausführen zu können, muss zuvor das Modul urlparse eingebunden worden sein:

>>> import urlparse
urlparse.urlparse(urlstring[, default_scheme[, allow_fragments]])

Die Funktion urlparse liest die URL urlstring ein und bricht sie in mehrere Teile auf. Dabei kann eine URL grundsätzlich aus sechs Teilen bestehen:

scheme://netloc/path;params?query#fragment

Der netloc-Bereich der URL wird außerdem in vier weitere Bereiche unterteilt:

username:password@host:port

Die meisten der angegebenen URL-Teile sind optional und können in URLs weggelassen werden.

Die sechs Bestandteile der URL werden in Form eines tupel-ähnlichen Objekts mit sechs Elementen zurückgegeben. Diese am meisten verwendeten Teile der URL können wie bei einem echten Tupel über die Indizes 0 bis 5 angesprochen werden. Zusätzlich – und das unterscheidet die zurückgegebene Instanz von einem Tupel – kann auf alle Teile der URL über Attribute der Instanz zugegriffen werden. Beachten Sie, dass Sie über Attribute auch auf die vier Unterbereiche des netloc-Teils zugreifen können, die nicht über einen Index erreichbar sind.

Die folgende Tabelle listet alle Attribute des Rückgabewertes der Funktion urlparse auf und erläutert sie jeweils mit einem kurzen Satz. Zusätzlich ist der entsprechende Index angegeben, sofern sich das entsprechende Attribut auch über einen Index ansprechen lässt. Die Attributnamen entsprechen den Namen der Bereiche, wie sie in den obigen URL-Beispielen verwendet wurden.


Tabelle 20.4  Teile einer URL
Attribut Index Beschreibung
scheme
0

Das Protokoll der URL, beispielsweise http oder file.

netloc
1

Die Network Location besteht üblicherweise aus einem Domainnamen mit Subdomain und TLD, beispielsweise www.galileo-press.de. Optional können auch Benutzername, Passwort und Portnummer in netloc enthalten sein.

path
2

Eine Pfadangabe, die einen Unterordner der Network Location kennzeichnet.

params
3

Parameter für das letzte Element des Pfades.

query
4

Über den Query String können zusätzliche Informationen an ein serverseitiges Script übertragen werden.

fragment
5

Das Fragment, auch Anker genannt. Ein geläufiges Beispiel für einen Anker ist eine Sprungmarke innerhalb einer HTML-Datei.

username

Der in der URL angegebene Benutzername, sofern vorhanden.

password

Das in der URL angegebene Passwort, sofern vorhanden.

hostname

Der Domainname der URL, beispielsweise www.galileo-press.de.

port

Die in der URL angegebene Portnummer, sofern vorhanden.


Über den optionalen Parameter default_scheme ist es möglich, ein Protokoll anzugeben, das in die resultierende Instanz eingetragen wird, wenn in der URL kein Protokoll angegeben wurde.

Der optionale Parameter allow_fragments legt fest, ob Fragmente, auch Anker genannt, in der URL vorkommen dürfen. Wenn hier False übergeben wird, referenziert das Attribut fragment der zurückgegebenen Instanz immer None, egal, ob ein Fragment übergeben wurde oder nicht. Der Parameter ist mit True vorbelegt.

Im folgenden Beispiel soll die URL

http://www.beispiel.de/pfad/zur/datei.py?prm1=abc

in ihre Bestandteile zerlegt werden:

>>> url = "http://www.beispiel.de/pfad/zur/datei.py?prm1=abc" 
>>> teile = urlparse.urlparse(url) 
>>> teile.scheme 
'http' 
>>> teile.netloc 
'www.beispiel.de' 
>>> teile.path 
'/pfad/zur/datei.py' 
>>> teile.params 
'' 
>>> teile.query 
'prm1=abc' 
>>> teile.fragment 
'' 
>>> teile.hostname 
'www.beispiel.de'
urlparse.urlunparse(parts)

Die Funktion urlunparse ist das Gegenstück zu urlparse. Sie erzeugt aus einem Tupel mit sechs Elementen einen URL-String. Statt eines reinen Tupels kann ein beliebiges iterierbares Objekt mit sechs Elementen, unter anderem beispielsweise auch der Rückgabewert von urlparse, übergeben werden.

>>> url = ("http", "beispiel.de", "/pfad/datei.py", "", "", "") 
>>> urlparse.urlunparse(url) 
'http://beispiel.de/pfad/datei.py'

Beachten Sie, dass der Ausdruck

urlparse.urlunparse(urlparse.urlparse(url)) == url

nicht immer True ergibt, da überflüssige Angaben, wie beispielsweise ein leeres Fragment am Ende einer URL, beim Aufruf von urlparse verloren gehen.

urlparse.urlsplit(urlstring[, default_scheme[, allow_fragments]])

Die Funktion urlsplit funktioniert ähnlich wie urlparse, mit dem Unterschied, dass das Attribut params in der zurückgegebenen Instanz nicht vorhanden ist. Die Parameter werden dann dem Pfad zugeordnet und sind damit im Attribut path enthalten. Die Funktion urlsplit sollte dann verwendet werden, wenn die neuere URL-Syntax erlaubt sein soll, die es ermöglicht, Parameter an jedes Element des Pfades anzuhängen.

Ansonsten ist die Schnittstelle von urlsplit mit der von urlparse identisch.

urlparse.urlunsplit(parts)

Die Funktion urlunsplit ist das Gegenstück zu urlsplit und funktioniert damit genau so wie urlunparse in Bezug auf urlparse.

urlparse.urljoin(base, url[, allow_fragments])

Die Funktion urljoin kombiniert die Basis-URL base und die relative URL url zu einer absoluten Pfadangabe. Der optionale Parameter allow_fragments hat dieselbe Bedeutung wie bei urlparse.

>>> base = "http://www.test.de" 
>>> relativ = "pfad/zur/datei.py" 
>>> urlparse.urljoin(base, relativ) 
'http://www.test.de/pfad/zur/datei.py' 
>>> base = "http://www.test.de/hallo/welt.py" 
>>> relativ = "du.py" 
>>> urlparse.urljoin(base, relativ) 
'http://www.test.de/hallo/du.py'

Beachten Sie, dass urljoin die beiden übergebenen Pfade nicht einfach aneinanderhängt, sondern, wie im Beispiel zu sehen ist, Dateinamen am Ende der Basis-URL abschneidet.

urlparse.urldefrag(url)

Die Funktion urldefrag spaltet den Anker einer URL, sofern vorhanden, von der URL selbst ab. Die Funktion gibt ein Tupel zurück, dessen erstes Element die URL abzüglich des Ankers ist. Der Anker selbst ist als zweites Element im Tupel enthalten.

>>> urlparse.urldefrag("http://www.test.de#frag") 
('http://www.test.de', 'frag')


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Python






Python
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Praxisbuch Web 2.0






 Praxisbuch Web 2.0


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Praxisbuch Objektorientierung






 Praxisbuch Objektorientierung


Zum Katalog: Einstieg in SQL






 Einstieg in SQL


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de