blog/

Как скачать картинки с сайта с помощью Python

Ivan @ 21 / 04 / 2021 @ Blog / Памятки / Программирование / Скрипты / Уроки
( / )

Время чтения: ~ 6 мин.

Написал скрипт, который сохраняет картинки (вообще-то просто любые файлы) с сайта по url. Чтобы скрипт запустить, вам понадобится среда выполнения Pуthon с соотв. библиотеками, или просто Google Colab.

Ещё про питон — см. в рубрике программирование.

linkList = list()
a = "<a href=\"https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_01.jpg\">00</a>"
b = "<a href=\"https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_31.jpg\">31</a>"
linkList.extend([a, b])
for i in range(2, 30):
  a = "<a href=\"https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_" + str(i).zfill(2) + "a.jpg\">" + str(i) + "</a>"
  b = "<a href=\"https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_" + str(i).zfill(2) + "b.jpg\">" + str(i) + "</a>"
  linkList.extend([a, b])
print(*linkList, sep="\n")

И далее сгенерированный список ссылок надо сохранить как html и скачать их любым менеджером загрузок.

Но мне показалось это не очень удобным, и вот этот вариант программы скачивает картинки в папку сам, коллаб блокнот вот тут (обратите внимание, оно требует установки wget в самом начале: !pip install wget ). Комментарии проставил в коде:

import os  # importing all we need, it's not much
import wget

urls_to_load = list()  # a list to store the urls
path = 'download_folder'  # the path where we will download those files

a = "https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_01.jpg"  # the first two images are separate as the source has them named differently
b = "https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_31.jpg"
urls_to_load.extend([a, b])  # add them to the url list

# add all other images, generating their names as we need
for i in range(2, 31):  # it is important to make this second number +1, so PY makes the list correctly (as far as we start with 2)
    a = "https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_" + str(i).zfill(2) + "a.jpg"
    b = "https://member.etn-net.org/magazines/en/2001/ETN-TF_4-2001_EN/ETN-TF_4-2001_EN_" + str(i).zfill(2) + "b.jpg"
    urls_to_load.extend([a, b])

# preparing to download
if not os.path.exists(path):
    try:
        os.mkdir(path)
    except OSError:
        print("Creation of the directory %s failed" % path)
    else:
        print("Successfully created the directory %s " % path)

# starting to download
print("Starting downloading")
for url in urls_to_load:
    file_name = path + '/' + os.path.basename(url) # get the full path to the file
    if os.path.exists(file_name):
        os.remove(file_name) # if exists, remove it directly
    file_name = wget.download(url, out=path)
    print(file_name)

print("ok")

Тут смысл в том, что оно умеет по списку ссылок скачивать, а в остальном оно бесполезное, конечно. Просто мне было лень руками 30 ссылок вбивать. И да, будьте внимательнее с копирайтом, соблюдайте закон.


Может быть интересно:


Подпишитесь на нас в социальных сетях!

Instagram
VK
Facebook
YouTube!
Telegram!

Подпишитесь на обновления



* нажимая на кнопку «Подписаться», вы даете согласие на обработку своих персональных данных