blog/
Как скачать картинки с сайта с помощью Python
Написал скрипт, который сохраняет картинки (вообще-то просто любые файлы) с сайта по 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 ссылок вбивать. И да, будьте внимательнее с копирайтом, соблюдайте закон.
Может быть интересно:
- Select all images urls and download them
- Про Python и ArchiCAD: удалить лишние слои
- Скрипт для выбора победителя в инстаграме (из лайков)
- Вывод дерева файлов через Питон
- Задаём свойства объектам в ArchiCAD 23 через Python