2013-07-25 74 views
2

我想從網站上的查看器中看到圖像尺寸。在Python中從Url獲​​取圖像尺寸

我用美麗的湯,我得到這樣的圖像鏈接:

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

我得到的圖像尺寸的方法是使用:

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

,並用同樣寬度的爲好。但是,某些鏈接只具有其中一個屬性。我試過PIL,但是如果下載的話會給出實際的圖像大小。

是否有任何其他方式來找到在網站上看到的圖像尺寸?

回答

13

你的主要問題是你正在搜索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 
+0

我假設這會給我的實際圖像尺寸。我實際上是在尋找從網站上看起來如何的形象,你知道我該怎麼做嗎?謝謝! – lost9123193

+0

當然,我只是添加處理手動修改尺寸的網站。我已經爲未指定大多數圖片尺寸的網站優化了此腳本,這是大多數網站的方式。 –

+0

謝謝!這是我用我的代碼做的。然而,我遇到了一個修改後的圖像的問題,但只有一個鑰匙存在。你知道解決這個問題的另一種方法嗎?謝謝! – lost9123193