Почему я могу загрузить только 51 изображение вместо 151 и почему не отображаются ошибки?

#python #python-3.x #pandas #web-scraping #jupyter-notebook

#python #python-3.x #pandas #очистка веб-страниц #jupyter-ноутбук

Вопрос:

Всем добрый вечер:

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

 import pandas as pd
import requests
import time

Bata = pd.read_csv("Batav1.csv")

Brand = Bata["Brand"].tolist()
Title = Bata["Title"].tolist()
Images = Bata["Img Links"].tolist()

r = requests.Session()

for b,t,i in zip(Brand,Title,Images):
    s = r.get(i).content
    with open("BataPics//Test//"   f"{t}-{b}.jpg","wb") as f:
        f.write(s)
    time.sleep(1)
 

Фрейм данных Pandas

Ссылка на файл CSV: (Google Диск)

Файл Csv

Комментарии:

1. внедрите счетчик в цикл for, чтобы проверить, действительно ли он выполняется 151 раз. Я предполагаю, что вы получаете только 51 результат из zip(Brand,Title,Images)

Ответ №1:

Существуют повторяющиеся комбинации первых двух столбцов CSV-файла. Это приводит к тому, что ваш код генерирует повторяющиеся имена файлов. По сути, вы перезаписываете ранее загруженные файлы.

На самом деле должно быть 57 файлов, а не 51.

Ответ №2:

Итак, я решил это, поскольку перезаписывал файлы с одинаковыми именами, поэтому я извлек уникальный код из URL-адресов изображений и получил все 151 изображение 🙂