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.