Maison >développement back-end >Tutoriel Python >Quel est le moyen le plus efficace de télécharger des images avec le module de requêtes de Python ?

Quel est le moyen le plus efficace de télécharger des images avec le module de requêtes de Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 02:21:13640parcourir

What's the Most Efficient Way to Download Images with Python's Requests Module?

Comment télécharger des images efficacement à l'aide de requêtes

Lors du téléchargement d'images à partir du Web à l'aide du module de requêtes de Python, il est important de comprendre l'utilisation appropriée de éléments de réponse. Cet article aborde la question de savoir quel attribut utiliser pour les téléchargements d'images.

Une approche consiste à accéder à l'objet fichier réponse.raw. Cette méthode permet un accès direct aux données d'image, mais elle nécessite la configuration de l'attribut decode_content pour garantir un décodage correct des réponses compressées. Par la suite, la fonction shutdown.copyfileobj() peut être utilisée pour diffuser les données vers le fichier souhaité. Voici un exemple :

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)  

Vous pouvez également parcourir la réponse pour garantir la décompression des données. Cette méthode garantit que les données sont traitées en morceaux plus petits.

import requests

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)

Vous pouvez personnaliser la taille du morceau en utilisant la méthode Response.iter_content() :

import requests

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.iter_content(1024):
            f.write(chunk)

N'oubliez pas d'ouvrir la destination. fichier en mode binaire pour éviter toute transformation inattendue. De plus, la définition du paramètre stream=True empêche le téléchargement simultané de l’image entière en mémoire. En suivant ces directives, vous pouvez télécharger des images efficacement à l'aide du module de requêtes de Python.

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!

Déclaration:
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