Seite 1 von 1

Filegröße im Internet ermitteln

Verfasst: Montag 18. April 2005, 16:50
von JoHo
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:

Verfasst: Montag 18. April 2005, 19:57
von CM
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

Verfasst: Montag 18. April 2005, 20:03
von Leonidas
Und wenn es die Datei nicht gibt, bekommst du halt die 404 Meldung des Webservers. Analog dazu auch die anderen HTTP Fehler.

Verfasst: Montag 18. April 2005, 20:04
von CM
... 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

Verfasst: Dienstag 19. April 2005, 15:33
von JoHo
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