Maison > développement back-end > Tutoriel Python > Comment résoudre les problèmes de téléchargement d'images à l'aide du module de requêtes de Python ?

Comment résoudre les problèmes de téléchargement d'images à l'aide du module de requêtes de Python ?

Mary-Kate Olsen
Libérer: 2024-12-21 08:24:11
original
163 Les gens l'ont consulté

How to Fix Image Download Issues Using Python's Requests Module?

Dépannage du téléchargement d'images avec le module de requêtes

Question :

Lors de la tentative de téléchargement d'une image en utilisant le module Requests en Python, le code ci-dessous échoue :

r = requests.get(settings.STATICMAP_URL.format(**data))
if r.status_code == 200:
    img = r.raw.read()
    with open(path, 'w') as f:
        f.write(img)
Copier après la connexion

Pouvez-vous aider à identifier le problème et suggérer une solution ?

Réponse :

Pour télécharger une image à l'aide du module Requêtes , vous pouvez utiliser l'objet fichier réponse.raw ou parcourir la réponse. Voici les approches :

Utilisation de réponse.raw :

import requests
import shutil

r = requests.get(settings.STATICMAP_URL.format(**data), stream=True)
if r.status_code == 200:
    with open(path, 'wb') as f:
        r.raw.decode_content = True
        shutil.copyfileobj(r.raw, f)
Copier après la connexion

Cette approche force la décompression des réponses compressées et utilise Shutil.copyfileobj() pour diffuser les données vers un objet fichier.

Itération Réponse :

r = requests.get(settings.STATICMAP_URL.format(**data), stream=True)
if r.status_code == 200:
    with open(path, 'wb') as f:
        for chunk in r:
            f.write(chunk)
Copier après la connexion

Cette approche garantit que les données sont décompressées et lit les données par morceaux de 128 octets. Vous pouvez personnaliser la taille du morceau à l'aide de la méthode Response.iter_content().

Remarques supplémentaires :

  • Ouvrez le fichier de destination en mode binaire ("wb" ) pour empêcher la traduction de nouvelle ligne.
  • Définissez stream=True pour éviter de charger l'intégralité de l'image en mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal