Comment lister et télécharger tous les fichiers d'un répertoire url en utilisant python ?

Created 13 novembre 2022 | Edited 14 novembre 2022 | Viewed 110 | by Benjamin Edit


Exemple de Comment lister et télécharger tous les fichiers d'un répertoire url en utilisant python:

Introduction

Exemple de cas : un collègue vous a envoyé un lien url (par exemple 'https://**/pub/') avec une liste de fichiers (voir image ci-dessous). Le but ici est de lister et de télécharger tous les fichiers qui se terminent par ".nc":

Comment lister et télécharger tous les fichiers d'un répertoire url en utilisant python ?

Lister tous les fichiers sous le répertoire d'une url donnée

La première étape consiste à créer une liste avec tous les liens de fichiers. Pour ce faire, une solution consiste à utiliser requests

import requests

url = 'https://******/pub/'

page = requests.get(url).text

Ensuite pour extraire uniquement les liens de la page une solution est d'utiliser BeautifulSoup

from bs4 import BeautifulSoup

soup = BeautifulSoup(page, 'html.parser')

links = [url + '/' + node.get('href') for node in soup.find_all('a') if node.get('href').endswith('nc')]

Télécharger tous les fichiers localement

Pour télécharger tous les fichiers, une solution consiste à utiliser urlretrieve:

import urllib.request

for link in links:
    print(link)
    filename = link.split('/')[-1]
   print(filename)
    urllib.request.urlretrieve(link,filename)

Voir aussi

Image

of