Я открыл первую ссылку в моем браузере и сохранил изображение. На самом деле это файл webp
.
$ file Unisex_OUTDOOR_SANDALS_CM7531_1.webp
Unisex_OUTDOOR_SANDALS_CM7531_1.webp: RIFF (little-endian) data, Web/P image, VP8 encoding, 500x500, Scaling: [none]x[none], YUV color, decoders should clamp
Вы явно указываете библиотеке изображений, что она должна ожидать jpg
. Когда вы удаляете этот параметр и позволяете ему разобраться самостоятельно, используя out.save('image/image.jpg')
, первое изображение успешно загружается для меня.
Первые два изображения работают таким образом, если вы убедитесь, что сохранили каждое под другое имя:
def img():
i = 0
for url in url_shoes_for_choice:
i+=1
image = requests.get(url, stream=True).raw
out = Image.open(image)
out.save('image{}.jpg'.format(i))
третий - допустимый файл jpeg, а также четвертый, но с использованием JFIF standard 1.01
, о котором я слышу впервые. Я почти уверен, что вам придется разобраться в поддержке различных таких типов файлов.
Стоит отметить, что если я загружу изображения в chrome и открою их с python, ничего не выйдет. Итак, chrome может добавлять информацию в файл.
В документации PIL
/ pillow
здесь объясняется, что вам нужна достаточно новая версия для анимированные изображения, но это не ваша проблема.
Поддержка анимированных файлов WebP будет включена только в том случае, если версия системной библиотеки WebP v0.5.0 или новее. Вы можете проверить поддержку веб-анимации во время выполнения, вызвав features.check («webp_anim»).