Filegröße im Internet ermitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JoHo
User
Beiträge: 5
Registriert: Montag 18. April 2005, 16:43
Kontaktdaten:

Hallo!
Bin zur Zeit dabei mir Python selber beizubringen. Doch einiges ist anders als in PHP.

Ich habe mir ein Progrämmchen geschrieben, welches mir Dateien (.jpg-Bilder) von einem Webserver herunterlädt. Ich weiß aber vorher nicht, ob es die Datei bereits gibt. Die Url generiere ich mit Hilfe einer Schleife.
Der Download erfolgt mit urllib.urlopen(url).
Um unnötige Anfragen zu vermeiden wollte ich euch fragen, ob es eine Möglichkeit gibt vorher zu prüfen, ob die Url vorhanden ist oder nicht. Also z.B. Prüfen ob die Dateigröße größer Null ist.
Hat vielleicht jemand einen Tipp für micht?? Geht vielleicht der eigentliche Download eleganter?

Mit freundlichen Grüßen

Johannes :roll:
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi

schau mal hier unter 'examples'.

Du koenntest folgendes probieren (nicht getestet und nur Pseudocode, weil im Moment auf Reisen):

Code: Alles auswählen

import urllib

try:
    reader = urllib.urlopen(x)
except: #glaube das ist ein IOError, wenn ich mich recht erinnere
            # aber das kannst Du ja testen
    #fuer den Fall, dass die URL nicht gefunden wird, hier das Handling
reader.read()
Also ganz einfach.

Gruss,
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Und wenn es die Datei nicht gibt, bekommst du halt die 404 Meldung des Webservers. Analog dazu auch die anderen HTTP Fehler.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

... und wenn Du via Bilder von einer Webseite laden willst (also http), dann ist das schon ok so. JPGs sind ja meist nicht so wahnsinnig gross. Ansonsten bietet Dir urllib natuerlich noch ein paar andere Optionen.

Gruss,
Christian
JoHo
User
Beiträge: 5
Registriert: Montag 18. April 2005, 16:43
Kontaktdaten:

Hallo, also mit try und except bin ich nicht weitergekommen, hab aber über die Beispielseite eine Konstrukt gefunden, mit dem es geht.
Trotzdem vielen Dank!

JoHo
Antworten