0

我正在从 URL 中抓取图像并进行一些操作,然后将它们保存到磁盘。这适用于绝大多数图像,但尽管在浏览器中加载良好,但仍有某些图像 URL 失败。我查看了错误跟踪,但对这里的各种修复都没有运气。以下是提取为失败的示例 URL。

OSError: 无法识别图像文件 <_io.BytesIO object at...>

from PIL import Image
import requests
from io import BytesIO

urlString = "http://lcl3.com/chemStructures1/A-10400.JPG"
response = requests.get(urlString,headers={'User-Agent': 'Mozilla/5.0'},timeout=10)
img = Image.open(BytesIO(response.content)) #check that it is an image; fails here
rgb_im = img.convert('RGB')
basewidth = 450
wpercent = (basewidth/float(rgb_im.size[0]))
if float(rgb_im.size[0]) > 450:                     
    hsize = int((float(rgb_im.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), Image.ANTIALIAS)
    rgb_im.save(image_folder / image_file_name,optimize=True,quality=95)

我认为该文件的格式不同。如需额外参考,该行在以下位置失败:

response = requests.get(urlString,headers={'User-Agent': 'Mozilla/5.0'},timeout=10)

并给出上述痕迹。我敢肯定它可能是一条线,但我把头发扯掉了,所以任何想法都会受到热烈的赞赏!

编辑:

我发现更多链接失败。例如

http://www.excelscientific.com/sealplate.jpg
https://www.bioexpress.com/stibo/web/std.lang.all/52/52/4695252.jpg

我查看了源代码,无法区分任何区别(这些页面上似乎没有任何“内容”只是图像,所以我越来越确信这是图像格式问题。

4

0 回答 0