Как загружать изображения с нескольких URL?

#python-3.x #python-requests

#python-3.x #python-запросы

Вопрос:

Я пытаюсь загрузить изображения по нескольким ссылкам, я пытался использовать приведенный ниже код, который не выдает ошибки, но загружается только последнее изображение.

Вот мой исходный код:

 import requests

image_url = [
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/3213e9e9da734c268db6bed4b76ea411.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/3a4e9c2704bb46afb5a43c3231974e04.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/48d93cb06ede452fbab83495a4ff17a6.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/c7d91a112c6341eb84ed8e62ea4d6aa8.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/5cb6f2cdd3a244af9d9640be6e65b4f0.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/b5804b834f2945dabd87892df695f5b2.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/c1a05e6fa0b24a2490b10b80760dae83.jpg"
]

for img in image_url:
  file_name = img.split('/')[-1]
  print("Downloading file:%s"%file_name)
  r = requests.get(img, stream = True)
  with open("file_name", 'wb') as f:
    for chunk in r:
      f.write(chunk)
  

Что я делаю не так?

Ответ №1:

Ваш код не работает, потому что вы используете строку "file_name" , а не переменную, попробуйте это вместо:

 import requests

image_url = [
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/3213e9e9da734c268db6bed4b76ea411.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/3a4e9c2704bb46afb5a43c3231974e04.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/48d93cb06ede452fbab83495a4ff17a6.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/c7d91a112c6341eb84ed8e62ea4d6aa8.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/5cb6f2cdd3a244af9d9640be6e65b4f0.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/b5804b834f2945dabd87892df695f5b2.jpg",
  "https://vision-images-store.s3.amazonaws.com/internship/zipper/view_1/c1a05e6fa0b24a2490b10b80760dae83.jpg"
]

for img in image_url:
 file_name = img.split('/')[-1]
 print("Downloading file:%s"%file_name)
 r = requests.get(img, stream=True)
 # this should be file_name variable instead of "file_name" string
 with open(file_name, 'wb') as f:
    for chunk in r:
       f.write(chunk)
  

Ответ №2:

В этом проекте я использовал аналогичный подход для загрузки нескольких изображений с сайта из списка URL-адресов, полученных на самом сайте.

введите описание изображения здесь