los*_*193 2 python image dimensions python-imaging-library
我希望从网站上的查看器中看到图像尺寸.
我正在使用美丽的汤,我得到这样的图像链接:
links = soup.findAll('img', {"src":True})
Run Code Online (Sandbox Code Playgroud)
我获取图像尺寸的方法是使用:
link.has_key('height')
height = link['height']
Run Code Online (Sandbox Code Playgroud)
同样也有宽度.但是,某些链接只具有其中一个属性.我尝试过PIL但是如果下载则会给出实际图像大小.
有没有其他方法可以找到网站上看到的图像尺寸?
小智 14
您的主要问题是您正在搜索html源代码以获取高度和宽度的引用.在大多数情况下(当事情做得好),图像没有在html中指定的高度和宽度,在这种情况下,它们在图像文件本身的高度和宽度处呈现.
要获取图像文件的高度和宽度,您需要实际查询并加载该文件,然后使用图像处理检查高度和宽度.如果这是你想要的,请告诉我,我会帮助你完成这个过程.
import urllib, cStringIO
from PIL import Image
# given an object called 'link'
SITE_URL = "http://www.targetsite.com"
URL = SITE_URL + link['src']
# Here's a sample url that works for demo purposes
# URL = "http://therealtomrose.therealrosefamily.com/wp-content/uploads/2012/08/headshot_tight.png"
file = cStringIO.StringIO(urllib.urlopen(URL).read())
im=Image.open(file)
width, height = im.size
if link.has_key('height'):
height = link['height'] # set height if site modifies it
if link.has_key('width'):
width = link['width'] # set width if site modifies it
Run Code Online (Sandbox Code Playgroud)
要求: 此方法需要PIL库进行图像处理.
# from command line in a virtual environment
pip install PIL
Run Code Online (Sandbox Code Playgroud)