Images Saver : Scraper des images avec Python

Vous voulez scrapez des images d'un ou plusieurs sites pour les réutiliser ? Vous n'avez pas envie d'enregistrer une à une les photos ? Voici comment procéder grâce à Python.

Enregistrer une liste d'images sur son disque dur

Voici le code Python qui devrait vous permettre d'enregistrer sur votre disque dur une liste d'images présentes dans un fichier nommé url.txt :


import urllib.request
import os

# Ouvre le fichier url.txt en mode lecture
with open("url.txt", "r") as f:
    # Pour chaque ligne du fichier
    for line in f:
        # Supprime les éventuels espaces blancs en début et fin de ligne
        line = line.strip()
        # Si la ligne n'est pas vide
        if line:
            # Récupère le nom du fichier à partir de l'URL
            filename = os.path.basename(line)
            # Ouvre l'URL de l'image et lit son contenu
            with urllib.request.urlopen(line) as url:
                image_data = url.read()
            # Enregistre le contenu de l'image dans un fichier
            with open(filename, "wb") as f:
                f.write(image_data)

				

Comment utiliser le scraper d'images en python ?

Pour utiliser ce code sur Windows, vous devez avoir installé Python sur votre ordinateur. Vous pouvez télécharger et installer Python à partir du site officiel : https://www.python.org/downloads/

Une fois que Python est installé, vous pouvez exécuter ce code en ouvrant un terminal (invite de commandes) et en utilisant la commande python suivie du nom du fichier contenant le code, comme ceci :


python nom_du_fichier.py

				

Assurez-vous que le fichier url.txt se trouve dans le même répertoire que le fichier contenant le code Python. Les images seront enregistrées dans le même répertoire que le fichier Python.

Notez que ce code suppose que le fichier url.txt contient une URL par ligne. Si vous avez besoin de traiter des URL de manière différente, vous devrez peut-être ajuster le code en conséquence.

Enregistrer en bulk des images en les renommant

En enregistrant les images, vous souhaitez les renommer ? Voici le même script que je vous ai donné précédemment avec l'ajour du renommage des images en fonction d'une liste de noms contenue dans un fichier nommé nom.txt :


import urllib.request
import os

# Ouvre les fichiers url.txt et nom.txt en mode lecture
with open("url.txt", "r") as url_file, open("nom.txt", "r") as nom_file:
    # Pour chaque ligne du fichier url.txt
    for url_line, nom_line in zip(url_file, nom_file):
        # Supprime les éventuels espaces blancs en début et fin de ligne
        url_line = url_line.strip()
        nom_line = nom_line.strip()
        # Si les lignes ne sont pas vides
        if url_line and nom_line:
            # Ouvre l'URL de l'image et lit son contenu
            with urllib.request.urlopen(url_line) as url:
                image_data = url.read()
            # Enregistre le contenu de l'image dans un fichier
            with open(nom_line, "wb") as f:
                f.write(image_data)

Assurez-vous que les fichiers url.txt et nom.txt se trouvent dans le même répertoire que le fichier contenant le code Python. Les images seront enregistrées dans le même répertoire que le fichier Python.

Notez que ce code suppose que les fichiers url.txt et nom.txt contiennent une URL et un nom par ligne, respectivement. Si vous avez besoin de traiter ces informations de manière différente, vous devrez peut-être ajuster le code en conséquence.