从Python中的Url获取图像维度

2024-06-01 00:18:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到从一个网站上的观众看到的图像尺寸。

我在用漂亮的汤,我得到了这样的图像链接:

links = soup.findAll('img', {"src":True})

获取图像尺寸的方法是使用:

link.has_key('height')
height = link['height']

同样的宽度。但是,有些链接只有其中一个属性。我试过PIL,但如果下载的话,它给出了实际的图像大小。

有没有其他方法可以找到网站上看到的图像尺寸?


Tags: 方法图像srctrueimg网站链接尺寸
1条回答
网友
1楼 · 发布于 2024-06-01 00:18:47

您的主要问题是您正在搜索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

要求: 这种方法需要PIL库来进行图像处理。

# from command line in a virtual environment
pip install PIL

相关问题 更多 >