Python allows you to easily download files using URLs and file locations. Sometimes you may need to download images in Python. There are several Python modules to help you with this. In this article, we will learn how to download images in Python using Requests module.
How to Download Images in Python
Here is a simple code snippet to help you download an image from URL.
import requests url = "<image_url>" response = requests.get(url) if response.status_code == 200: with open("/path/to/file", 'wb') as f: f.write(response.content)
In the above code, we first import requests library that makes it easy to work with requests. We use get() function to download the image, that is, get a response. We check the response code, if it is 200 then we write the file to our desired location. Replace <image_url> and /path/to/file with URL of image and local path to write your file respectively.
Here is an example for the same.
import requests url = "http://example.com/images/test.jpg" response = requests.get(url) if response.status_code == 200: with open("/Users/Desktop/sample.jpg", 'wb') as f: f.write(response.content)
Although requests is more feature-rich than urllib module, in this case it provides a very concise way to download images and even other files.
import urllib urllib.request.urlretrieve("<image_url>", "<local_file_path>")
For example, if you want to download image at http://example.com/image.jpg and write it to /home/ubuntu/image.jpg you can easily do this in 2 lines as shown below.
import urllib urllib.request.urlretrieve("http://www.example.com/image.jpg", "/home/ubuntu/image.jpg")
urlretrieve() function conveniently downloads a file using URL, and writes it to a local path provided as 2nd argument.
If you are comfortable using the good old wget tool from command line, you can also use it from within python environment using wget module, as shown below. You just need to provide URL to image in wget.download() function, and local path to write file, as second argument.
import wget >>> url = 'http://example.com/image.jpg' >>> filename = wget.download(url, out='/home/ubuntu/') 100% [................................................] 3841 / 3841> >> filename 'image.jpg'
In this article, we have learnt three simple ways to download image in Python. You can use any of them as per your requirement.