Fichier de téléchargement des demandes de python

Fichier de téléchargement des demandes de python

«La bibliothèque Python Demandes est l'une des bibliothèques les plus polyvalentes et précieuses de l'écosystème Python. Ses fonctionnalités et sa simplicité incroyable en valent la peine de propulser de nombreuses applications Python."

Ce tutoriel nous apprendra comment télécharger un fichier à partir d'une URL donnée à l'aide du package de demandes.

Installation et configuration

Avant d'utiliser la méthode des demandes, vous devez vous assurer qu'elle est installée dans votre environnement. Vous pouvez le faire en exécutant la commande PIP comme indiqué:

$ Sudo Pip Installer les demandes


ou

$ Sudo Pip3 Installer les demandes


Sur Windows, vous pouvez exécuter la commande:

$ Python -M PIP Installer les demandes


Si vous avez installé conda, exécutez la commande:

Conda Install -C Anaconda Demandes

Exemple 1 - Télécharger un fichier simple

Nous pouvons télécharger un fichier à l'aide du module Demandes en spécifiant l'URL dans le fichier et en utilisant le module de fichier Python pour écrire le contenu sur un nom de fichier donné.

Un exemple d'illustration est illustré ci-dessous:

$ touch ~ / téléchargement_image.py


Modifiez le fichier et ajoutez le code:

$ vim ~ / téléchargement_image.py
Demandes d'importation
url = 'https: // télécharger.wikimedia.org / wikipedia / commons / a / af / smoking.png '
r = demandes.get (url, allow_redirects = true)
avec ouvert ('Tux.png ',' wb ') comme f:
F.écrivain.contenu)


Dans le code ci-dessus, nous commençons par importer le module de demande. Nous créons ensuite une variable contenant l'URL dans le fichier que nous souhaitons télécharger. Dans ce cas, nous voulons télécharger une image.

Dans la troisième ligne, nous créons un objet de réponse HTTP et faisons une demande GET à l'URL spécifiée. Nous définissons également le perte_redirect sur True pour permettre au client de suivre les redirectes (le cas échéant). L'objet de réponse est ensuite enregistré dans la variable appelée r.

Enfin, enregistrez l'objet reçu dans un fichier sous forme de smoking.PNG en mode binaire.

Vous pouvez ensuite vérifier le répertoire où se trouve le script pour le smoking.fichier png.

Exemple 2 - Télécharger les fichiers volumineux

Dans l'exemple ci-dessus, nous utilisons le r.Content Func, qui stocke le fichier en tant que chaîne. C'est pratique lors du téléchargement de petits fichiers. Cependant, lors du téléchargement de fichiers volumineux, la fonction ne gérera pas la rédaction des données demandées à la fois.

Pour résoudre ce problème, nous devons télécharger le fichier sous forme de flux. Par conséquent, nous pouvons utiliser le r.fonction iter_content et définir le paramètre de flux sur true.

C'est parce que l'utilisation du r.La fonction contenu () avec le paramètre Stream vers True ne fera que la connexion et la réponse ouvertes et ne lisent pas le fichier spécifié.

Le r.La fonction iter_content nous permet de résoudre ce.

Un exemple est comme indiqué:

Demandes d'importation
url = "https: // hastie.su.domaines / islr2 / islrv2_website.pdf "
r = demandes.get (url, allow_redirects = true, stream = true)
avec ouvert ('ISLRV2.pdf ',' wb ') comme fichier:
pour morceau en r.iter_content (chunk_size = 1024):
Si Chunk:
déposer.écrire (morceau)


Le code ci-dessus utilise une boucle pour écrire les morceaux de données (1024 octets chacun) dans le fichier spécifié.

Exemple 3 - Vérification du type de fichier avant le téléchargement

Nous pouvons vérifier le type de contenu reçu des en-têtes. Nous pouvons ensuite utiliser cette valeur pour vérifier si le fichier que nous souhaitons télécharger est correct.

Par exemple, si nous souhaitons télécharger un fichier ISO et recevoir un type HTML ou de texte, nous savons qu'il s'agit d'un fichier incorrect et fermer la connexion.

Un exemple de code est comme indiqué:

Demandes d'importation
url = "https: // cdimage.Debian.Org / Debian-CD / Current / AMD64 / ISO-DVD / Debian-11.4.0-AMD64-DVD-1.ISO "
r = demandes.get (url, allow_redirects = true, stream = true)
h = demandes.tête (url, allow_redirects = true)
en-tête = h.têtes
contenu_type = en-tête.get ('contenu-type')
Si 'html' dans content_type.inférieur():
r.fermer()
print ("type de fichier incorrect")
Si 'Text' dans content_type ().inférieur():
r.fermer()
print ("type de fichier incorrect")
autre:
avec ouvert ('ISLRV2.ISO ',' WB ') comme fichier:
pour morceau en r.iter_content (chunk_size = 1024):
Si Chunk:
déposer.écrire (morceau)

Fermeture

Vous avez appris à télécharger un fichier à l'aide du module de requêtes Python dans cet article. Vous avez également appris à télécharger des fichiers volumineux.

Merci d'avoir lu!!