Как скачать картинки с сайта с помощью 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!

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



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