Maison  >  Article  >  développement back-end  >  11 postures téléchargées en Python, toutes plus avancées les unes que les autres

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

PHPz
PHPzavant
2023-04-11 15:22:031540parcourir

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Enfin, vous apprendrez à surmonter divers défis que vous pourriez rencontrer, tels que le téléchargement de fichiers redirigés, le téléchargement de fichiers volumineux, la réalisation d'un téléchargement multithread et d'autres stratégies.

1. Utilisation des requêtes

Vous pouvez utiliser le module de requêtes pour télécharger des fichiers à partir d'une URL.

Considérez le code suivant :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Vous obtenez simplement l'URL en utilisant la méthode get du module de requêtes et stockez le résultat dans une variable appelée "monfichier". Ensuite, écrivez le contenu de cette variable dans le fichier.

2. Utilisation de wget

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Vous pouvez également utiliser le module wget de Python pour télécharger des fichiers à partir d'une URL. Vous pouvez installer le module wget à l'aide de pip en suivant la commande :

Considérez le code suivant, que nous utiliserons pour télécharger l'image du logo pour Python.

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce code, l'URL et le chemin (où l'image sera stockée) sont transmis à la méthode de téléchargement du module wget.

3. Télécharger des fichiers redirigés

Dans cette section, vous apprendrez à utiliser les requêtes pour télécharger un fichier à partir d'une URL qui sera redirigé vers une autre URL avec un fichier .pdf. L'URL ressemble à ceci :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Pour télécharger ce fichier pdf, utilisez le code suivant :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce code, nous précisons l'URL dans la première étape. Ensuite, nous utilisons la méthode get du module request pour obtenir l'URL. Dans la méthode get, nous définissons allow_redirects sur True, ce qui autorisera les redirections dans l'URL et le contenu redirigé sera attribué à la variable myfile.

Enfin, nous ouvrons un fichier pour écrire le contenu obtenu.

4. Téléchargez des fichiers volumineux en morceaux

Considérez le code suivant :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Tout d'abord, nous utilisons la méthode get du module requêtes comme auparavant, mais cette fois, nous définirons l'attribut stream sur True.

Ensuite, nous créons un fichier nommé PythonBook.pdf dans le répertoire de travail actuel et l'ouvrons en écriture.

Ensuite, nous précisons la taille du morceau à télécharger à chaque fois. Nous l'avons défini sur 1024 octets, puis avons parcouru chaque morceau et écrit ces morceaux dans le fichier jusqu'à la fin du morceau.

N'est-ce pas beau ? Ne vous inquiétez pas, nous afficherons une barre de progression du processus de téléchargement plus tard.

5. Téléchargez plusieurs fichiers (téléchargement parallèle/par lots)

Pour télécharger plusieurs fichiers en même temps, veuillez importer les modules suivants :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Nous avons importé les modules OS et Time pour vérifier combien de temps il faut pour télécharger un fichier. Le module ThreadPool vous permet d'exécuter plusieurs threads ou processus à l'aide d'un pool.

Créons une fonction simple qui décompose la réponse à un fichier :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

L'URL est un tableau 2D qui spécifie le chemin et l'URL de la page que vous souhaitez télécharger.

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Tout comme nous l'avons fait dans la section précédente, nous transmettons cette URL à request.get. Enfin, nous ouvrons le fichier (le chemin spécifié dans l'URL) et écrivons le contenu de la page.

Maintenant, nous pouvons appeler cette fonction pour chaque URL individuellement, ou nous pouvons appeler cette fonction pour toutes les URL en même temps. Appelons cette fonction pour chaque URL individuellement dans une boucle for, en faisant attention au timer :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Maintenant, remplacez la boucle for par les lignes de code suivantes :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Exécutez le script.

6. Utilisez la barre de progression pour le téléchargement

La barre de progression est un composant de l'interface utilisateur du module clint. Entrez la commande suivante pour installer le module clint :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Considérez le code suivant :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce code, nous avons d'abord importé le module de requêtes puis, nous avons importé le composant de progression depuis clint.textui. La seule différence réside dans la boucle for. Lors de l'écriture du contenu dans un fichier, nous utilisons la méthode bar du module de barre de progression.

7. Utilisez urllib pour télécharger une page Web

Dans cette section, nous utiliserons urllib pour télécharger une page Web.

La bibliothèque urllib est la bibliothèque standard de Python, vous n'avez donc pas besoin de l'installer.

La ligne de code suivante permet de télécharger facilement une page Web :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Spécifiez ici la raison pour laquelle vous souhaitez enregistrer le fichier et l'URL où vous souhaitez le stocker.

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce code, nous utilisons la méthode urlretrieve et transmettons l'URL du fichier ainsi que le chemin pour enregistrer le fichier. L'extension du fichier sera .html.

8. Téléchargement via un proxy

Si vous devez utiliser un proxy pour télécharger vos fichiers, vous pouvez utiliser le ProxyHandler du module urllib. Veuillez regarder le code suivant :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce code, nous créons l'objet proxy et ouvrons le proxy en appelant la méthode build_opener d'urllib et en transmettant l'objet proxy. Ensuite, nous créons une demande pour obtenir la page.

De plus, vous pouvez également utiliser le module de requêtes comme décrit dans la documentation officielle :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Il vous suffit d'importer le module de requêtes et de créer votre objet proxy. Ensuite, vous pouvez récupérer le fichier.

9. Utilisation de urllib3

urllib3 est une version améliorée du module urllib. Vous pouvez le télécharger et l'installer en utilisant pip :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Nous utiliserons urllib3 pour obtenir une page Web et la stocker dans un fichier texte.

Importez les modules suivants :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Lors du traitement des fichiers, nous utilisons le module Shutil.

Maintenant, nous initialisons la variable de chaîne d'URL comme ceci :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Ensuite, nous utilisons le PoolManager d'urllib3, qui assure le suivi du pool de connexions nécessaire.

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Créez un fichier :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Enfin, nous envoyons une requête GET pour obtenir l'URL et ouvrons un fichier, puis écrivons la réponse dans le fichier :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

10. Fichiers

Pour télécharger des fichiers depuis Amazon S3, vous pouvez utiliser le module Python boto3.

Avant de commencer, vous devez installer le module awscli en utilisant pip :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Pour la configuration AWS, exécutez la commande suivante :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Entrez maintenant vos coordonnées comme suit :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Pour télécharger des fichiers depuis Amazon S3, vous devez importer boto3 et botocore. Boto3 est un SDK Amazon qui permet à Python d'accéder aux services Web Amazon (tels que S3). Botocore fournit un service de ligne de commande pour interagir avec les services Web Amazon.

Botocore est livré avec awscli. Pour installer boto3, exécutez la commande suivante :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Maintenant, importez ces deux modules :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Lors du téléchargement du fichier depuis Amazon, nous avons besoin de trois paramètres :

  • Bucket Name
  • Vous devez télécharger The nom du fichier
  • Le nom du fichier après son téléchargement

Variable d'initialisation :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Maintenant, nous initialisons une variable pour utiliser les ressources de la session. Pour ce faire, nous allons appeler la méthode resource() de boto3 et transmettre le service, qui est s3:

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Enfin, utiliser la méthode download_file pour télécharger le fichier et transmettre la variable :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

11. Utilisation du module asyncio

asyncio Principalement utilisé pour gérer les événements système. Il fonctionne autour d'une boucle d'événements qui attend qu'un événement se produise et réagit ensuite à cet événement. La réaction peut être d'appeler une autre fonction. Ce processus est appelé traitement des événements. Le module asyncio utilise des coroutines pour la gestion des événements.

Pour utiliser la gestion des événements asyncio et la fonctionnalité coroutine, nous allons importer le module asyncio :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Maintenant, définissons la méthode de coroutine asyncio comme ceci :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Le mot-clé async signifie qu'il s'agit d'une coroutine asyncio native. À l'intérieur de la coroutine, nous avons un mot-clé wait, qui renvoie une valeur spécifique. Nous pouvons également utiliser le mot-clé return.

Maintenant, créons un morceau de code pour télécharger un fichier à partir d'un site Web à l'aide de coroutine :

11 postures téléchargées en Python, toutes plus avancées les unes que les autres

Dans ce morceau de code, nous avons créé une fonction coroutine asynchrone qui téléchargera notre fichier et renverra un message.

Ensuite, nous appelons main_func en utilisant une autre coroutine asynchrone qui attend les URL et regroupe toutes les URL dans une file d'attente. La fonction d'attente d'asyncio attendra la fin de la coroutine.

Maintenant, pour démarrer la coroutine, nous devons mettre la coroutine dans une boucle d'événement en utilisant la méthode get_event_loop() d'asyncio, et enfin, nous exécutons cette boucle d'événement en utilisant la méthode run_until_complete() d'asyncio.

Télécharger des fichiers à l'aide de Python est amusant. J'espère que ce tutoriel vous sera utile !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer