Загрузка/выбор изображений из python

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

Приведенный ниже код экспортирует все изображение и сохраняет ссылку на изображение в файл csv, но я также хочу, чтобы изображение также сохраняло его в моем каталоге.

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup as soup

my_url = 'https://www.newegg.com/Video-Cards-Video-Devices/Category/ID-38?Tpk=graphics%20card'

req = Request(my_url, headers={'User-Agent': 'Mozilla/5.0'})


webpage = urlopen(req).read()
page_soup = soup(webpage, "html.parser")


filename = "abc.csv"
f = open(filename, "w")


headers = "imagelink\n" 
f.write(headers)


snackcrisps = page_soup.findAll("div",{"class":"divCategories divShops-newegg"})
crispitem = snackcrisps[0]


img = crispitem.findAll("div",{"class":"product_image_div productSmall_image_div_lit"})
img1 = img[0]


for img1 in img:

    img2 = img1.findAll('img')
    imageLink = img2[0].get('src')


    print("imageLink: " + imageLink)

    f.write(imageLink + "\n")

f.close()

Как я могу сохранить изображения в своем локальном каталоге? Нужна помощь!!

Огромное спасибо


person Sushil S    schedule 03.09.2019    source источник
comment
Возможный дубликат Как загрузить изображения из BeautifulSoup?   -  person HS-nebula    schedule 04.09.2019
comment
Я новичок в этом, не знаю, как это исправить. Может ли кто-нибудь исправить это для меня? спасибо   -  person Sushil S    schedule 04.09.2019


Ответы (1)


Я использовал ответ на это сообщение, чтобы сформулировать свой ответ.

Сначала вам нужно создать полный URL-адрес для изображения, которое вы хотите. Это может быть так же просто, как добавить «https:» в начало ссылки на изображение или вообще не менять значение. Вам придется исследовать (просмотрите этот сообщение), как настроить URL-адреса, которые вы найдете на основе являются ли они относительными или абсолютными.

Вы захотите использовать модуль requests для запроса изображения.

import requests
import shutil

for img1 in img:

    img2 = img1.findAll('img')
    imageLink = img2[0].get('src')
    if not "https:" in imageLink:
        imageLink = "https:" + imageLink

    r = requests.get(imageLink, stream=True)
    if r.response = 200:
        with open("my_file.jpg", 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)
person fendall    schedule 03.09.2019