[英]Django / VersatileImageField: IOError - cannot identify image file
[英]Get image from image url: IOError: cannot identify image file
我正在使用Python請求從圖像URL獲取圖像文件。
下面的代碼在大多數情況下都可以使用,但是對於越來越多的URL開始失敗。
import requests
image_url = "<url_here>"
headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Encoding':'gzip,deflate,sdch'}
r = requests.get(image_url, headers=headers)
image = Image.open(cStringIO.StringIO(r.content))
如果那給出了一個錯誤,那么我嘗試使用不同的頭(過去解決了問題):
headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36', 'Accept':'image/webp,*/*;q=0.8','Accept-Encoding':'gzip,deflate,sdch'}
但是,這些網址(以及其他網址)不起作用。 它們給出“ IOError:無法識別圖像文件”錯誤。
http://cdn.casaveneracion.com/vegetarian/2013/08/vegan-spaghetti1.jpg
http://www.rachaelray.com/site/images/sidebar-heading-more-recipes-2.svg
它使用url在我的瀏覽器中很好地顯示了圖像。 我不知道他們是否有同樣的問題。
您正在使用Python Imaging Library(PIL)提供代碼最后一行中提到的Image類。
有關PIL支持的圖像格式,請參見本文檔的底部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.