簡體   English   中英

從圖像網址獲取圖像:IOError:無法識別圖像文件

[英]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://www.paleoeffect.com/wp-content/uploads/2011/06/800x414xpaleo_bread_wheat_recipe-800x414.jpg.pagespeed.ic.6pprrYPoTo.webp

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類。

  • 古效果圖像是WebP文件。 PIL不支持WebP格式。
  • Casa Veneracion URL沒有鏈接到圖像文件-它返回302重定向到HTML文件。 自己看看 。)
  • Rachael Ray圖像是SVG文件。 SVG不是PIL支持的格式。

有關PIL支持的圖像格式,請參見本文檔的底部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM