While the other answers are perfectly correct.
I found it really slow to download and don't know the progress with really high resolution images.
So, made this one.
from bs4 import BeautifulSoup
import requests
import subprocess
url = "https://example.site/page/with/images"
html = requests.get(url).text # get the html
soup = BeautifulSoup(html, "lxml") # give the html to soup
# get all the anchor links with the custom class
# the element or the class name will change based on your case
imgs = soup.findAll("a", {"class": "envira-gallery-link"})
for img in imgs:
imgUrl = img['href'] # get the href from the tag
cmd = [ 'wget', imgUrl ] # just download it using wget.
subprocess.Popen(cmd) # run the command to download
# if you don't want to run it parallel;
# and wait for each image to download just add communicate
subprocess.Popen(cmd).communicate()
Warning: It won't work on win/mac as it uses wget.
Bonus: You can see the progress of each image if you are not using communicate.