Si vous développez ou concevez un site Web, vous avez probablement besoin de vous procurer des images de stock. Elles peuvent être utiles pour le prototypage, ou même pour votre application de production.
Vous pouvez facilement construire un récupérateur d’images aléatoires en utilisant le langage Python, toujours aussi convivial. Vous pouvez l’utiliser pour présenter des images aléatoires dans un widget, tester le changement de résolution ou présenter un moteur de recommandation de produits.
Suivez ce projet pour acquérir une expérience pratique des modules Requests et Pillow. Ils s’avéreront utiles pour de futurs travaux sur le Web, y compris le traitement des images.
Les modules Requests et Pillow
Le module Requests permet d’effectuer facilement des requêtes HTTP et de renvoyer un objet de réponse contenant des données telles que l’encodage et le statut. Avec ce module, vous pouvez développer de nombreuses applications intéressantes telles qu’un vérificateur d’état de site Web, un scraper Web, un robot de surveillance de la bourse et un testeur de performance de site Web. Pour installer le module Requests, ouvrez le terminal et tapez :
pip install requests
La bibliothèque Pillow – un fork de la bibliothèque Python Imaging Library (PIL) – offre des fonctionnalités de traitement d’images qui facilitent l’édition, la création, la conversion de formats de fichiers et l’enregistrement d’images. Elle offre une large compatibilité avec les formats de fichiers et une représentation interne utile. Pour installer le module Pillow, ouvrez le terminal et tapez :
pip install Pillow
Comment construire un récupérateur d’images aléatoires en utilisant Python
Vous pouvez trouver le code source de Random Image Fetcher en utilisant Python dans ce dépôt GitHub.
Importez les modules et définissez une fonction nommée img_requests() qui prend txt comme paramètre d’entrée. Envoyez une méthode GET à l’URL de l’API d’Unsplash et utilisez la fonction format pour remplir l’espace réservé, {0}avec la valeur txt. Enregistrez la réponse du contenu au format JPG et ouvrez l’image pour que l’utilisateur puisse la visualiser. Enfin, fermez le fichier ouvert.
import requests
from PIL import Image
def img_requests(txt):
response = requests.get("https://source.unsplash.com/random{0}".format(txt))
file = open('image.jpg', 'wb')
file.write(response.content)
img = Image.open(r"image.jpg")
img.show()
file.close()
Affichez les différentes options que le programme propose à l’utilisateur. Les quatre premières options permettent de récupérer une image en résolution HD, Full HD, 2K ou 4K selon le choix. Si l’utilisateur choisit la cinquième option, il doit fournir un mot clé. En fonction de celui-ci, le programme sélectionnera une image appropriée et l’enregistrera dans le système.
print("""Please provide an option for Image
1. HD Random Picture
2. FHD Random Picture
3. 2K Random Picture
4. 4k Random Picture
5. Picture keyword">with User Provided Keyword """)
Obtenir le choix de l’utilisateur, afficher un message approprié, et appeler la fonction img_requests, en passant le texte approprié pour sa requête.
ans = input()
if 'one' in ans or '1' in ans:
print("Please wait while we fetch an HD image.")
img_requests('/1280x720')
elif 'two' in ans or '2' in ans:
print("Please wait while we fetch a Full HD image.")
img_requests('/1920x1080')
elif 'three' in ans or '3' in ans:
print("Please wait while we fetch a 2k image.")
img_requests('/2048x1080')
elif 'four' in ans or '4' in ans:
print("Please wait while we fetch a 4k image.")
img_requests('/4096x2160')
La cinquième option est un peu plus compliquée. Si l’utilisateur la choisit, demandez-lui d’entrer ses mots-clés. Ajoutez un point d’interrogation devant le mot-clé et appelez la fonction pour récupérer une image aléatoire en fonction de l’entrée.
elif 'five' in ans or '5' in ans:
print("Please enter a keyword you want to get a random image of.")
st = input()
st = "?" + st
print("Please wait while we fetch the images from our database.")
img_requests(st)
Si l’utilisateur saisit autre chose, demandez-lui de fournir une entrée valide :
else:
print("Please provide a valid input.")
Mettez tout le code ensemble et amusez-vous à récupérer des images aléatoires en haute résolution.
Résultat de la recherche d’images aléatoires
En exécutant le programme ci-dessus, le programme affiche cinq options. En choisissant l’une des options, le programme enregistre une image et l’affiche à l’écran.
Si vous choisissez l’option 5 et entrez le mot-clé Spider-Man, le programme récupère l’image suivante de Spider-Man sur Unsplash.
Web Scraping avec Python
De nombreux sites fournissent des API utiles, comme l’extracteur d’images aléatoires d’Unsplash. Mais pour ceux qui ne le font pas, vous pouvez toujours avoir recours au web scraping, et le module Requests peut vous aider.
D’autres modules utiles sont Beautiful Soup, Selenium, Scrapy, Urllib et Mechanize. Vous pouvez utiliser le web scraping pour extraire des informations de n’importe quel site Web, les stocker et les analyser en fonction de vos besoins.
Parmi les applications que vous pouvez développer à l’aide de cette technique, citons un scraper de nouvelles, un tracker de prix et un téléchargeur d’images. Le Web Scraping est également largement utilisé dans le traitement du langage naturel pour former des modèles et effectuer des analyses de sentiments.