IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Comment récupérer une image du net ? [Fait]


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Comment récupérer une image du net ?
    Bonjour/soir,

    Je cherche à réaliser une sorte de mini aspirateur d'images en Python. J'arrive à récupérer le contenu de l'image avec urlopen(), puis à l'écrire dans un fichier. Le problème, le fichier final n'est pas lisible, ou partiellement (dimensions, par ex.).

    Voilà mon petit code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import urllib
     
    #on chope la source
    im = urllib.urlopen('http://www.google.fr/intl/fr_fr/images/logo.gif')
    source = im.read()
     
    #on cree le fichier
    file('google.gif', 'w')
     
    #on transfert le tout dans le fichier
    fichier = open('google.gif', 'w')
    fichier.write(source)
    fichier.close()
    Là je tente de récupérer le logo Google, ça ne marche qu'à moitié... Pire encore, si je tente de récupérer une image JPEG, le fichier final est totalement illisible.... Je pense qu'il y a une histoire de header à déclarer selon le type d'image, mais je n'ai rien trouvé à ce sujet .

    Une idée, une piste ?

    Merci de vos réponses .

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    j'ai eu le même problème récemment..

    je suis passé par la classe StringIO de la librairie PIL.. voici le bout de code ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import urllib
    import StringIO
    import Image
     
    if __name__ == "__main__":
    	page =urllib.urlopen("http://monsite.com/image.jpg")
    	buffer = page.read()
            im = Image.open(StringIO.StringIO(buffer))
            im.save	("test.jpg")
    d'ailleurs je serais interessé par une méthode ne passant pas par PIL, je suppose que c'est un problème d'écriture binaire dans un fichier, mais comme j'ai contourné le problème je n'ai pas cherché plus loin..

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    Hum.... Après tout, puisque ça marche... tant mieux !

    Merci kalimero

    *résolu*

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    fichier = open('google.gif', 'w')
    -->
    fichier = open('google.gif', 'wb')

    faut louvrir en binaire :p

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Citation Envoyé par kalimero
    je suis passé par la classe StringIO de la librairie PIL..
    StringIO ne fait pas partie de PIL! C'est un module de la librairie "standard"
    http://docs.python.org/lib/module-StringIO.html

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    autant pour moi, j'ai pensé qu'elle faisait partie de pil car elle est décrite dans la doc de cette dernière

    => FAQ: http://python.developpez.com/faq/?page=Web#WebDownload

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Comment récupérer une image WEB
    Par jacques13 dans le forum Général VBA
    Réponses: 9
    Dernier message: 06/02/2014, 15h58
  2. Comment récupérer une image dans un GUI
    Par rakinetak dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 15/08/2008, 21h46
  3. Comment récupérer une image de fond d'un JPanel?
    Par kayzra dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 30/07/2007, 14h17
  4. Comment récupérer une image
    Par lodan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2007, 22h24
  5. Comment récupérer une image Web?
    Par sorcer1 dans le forum C#
    Réponses: 2
    Dernier message: 29/01/2007, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo