Я знаю, что вопросов много, но я думаю, что нет ига (я думаю). У меня есть массив URL-адресов изображения, и я хочу его загрузить. Но когда я пытаюсь сохранить изображения, я получаю эту ошибку. Я не знаю, как это сделать.Python, IOError: не удается определить файл изображения
Это мой код:
listOfImagesUrl = ['https://cdn.psychologytoday.com/sites/default/files/blogs/1023/2012/09/105928-103553.jpg', 'http://i.livescience.com/images/i/000/048/264/original/disgusted-101130-02.jpg%3F1324346664', 'http://barfblog.com/wp-content/uploads/images/disgust.story.jpg', 'http://cache1.asset-cache.net/gc/148190074-people-making-disgusted-faces-gettyimages.jpg%3Fv%3D1%26c%3DIWSAsset%26k%3D2%26d%3Dww%252BvNwEe%252BXzLnQze1Z2w9KNDivKR%252BEqGJ2cPfDe1oeinIezLX%252B8y1tIG3LNjTbL5']
imageNumber = 1
for imageUrl in listOfImagesUrl:
file = cStringIO.StringIO(urllib.urlopen(imageUrl).read())
img = Image.open(file)
img.save("/tmp/test/" + str(imageNumber) + "." + img.format)
print "DONE: " + str(imageNumber) + " of " + str(len(listOfImagesUrl))
imageNumber += 1
Я решил проблему URL-адрес, используя ответ на sleeplessnerd на вопрос this StackOverflow в. Проблема заключалась в том, что я должен был включить файлы cookie на urllib2.
Второй URL-адрес дает вам ошибку 500 при загрузке с помощью 'urllib', а тело ответа пуст. Проверяйте свои ответы, прежде чем пытаться читать данные. –
Последовательность '% 3F' является закодированным знаком вопроса. Он не должен быть частью пути URL, у вас есть параметр запроса (вероятно, кеш-кеш), закодированный в URL-адрес. Последний URL-адрес имеет то же самое. –
Но, если я позвоню своему второму URL-адресу на http://www.livescience.com/images/i/000/048/264/original/disgusted-101130-02.jpg, он все еще не работает. Что происходит? Спасибо за вашу помощь. – Caaarlos