V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hatcat3
V2EX  ›  问与答

python 怎么取得一张网络图片的大小呢在不下载该图片的前提下

  •  
  •   hatcat3 · May 6, 2013 · 5813 views
    This topic created in 4749 days ago, the information mentioned may be changed or developed.
    http://img3.douban.com/lpic/s3218545.jpg 比如这张图片的大小?
    10 replies    1970-01-01 08:00:00 +08:00
    aveline
        1
    aveline  
       May 6, 2013
    不可能。。。
    BOYPT
        2
    BOYPT  
       May 6, 2013
    叫另外一台机器下载然后告诉你大小。
    alexrezit
        3
    alexrezit  
       May 6, 2013
    可以只下载一部分然后检查 meta 信息.
    luztak
        4
    luztak  
       May 6, 2013
    HTTP HEAD请求.
    qiayue
        5
    qiayue  
    PRO
       May 6, 2013
    几年前看到的一篇文章
    再谈javascript图片预加载技术
    http://www.planeart.cn/?p=1121

    其中一段话:
    “浏览器在加载图片的时候你会看到图片会先占用一块地然后才慢慢加载完毕,并且不需要预设width与height属性,因为浏览器能够获取图片的头部数据。基于此,只需要使用javascript定时侦测图片的尺寸状态便可得知图片尺寸就绪的状态。”
    具体请看原文
    funagi
        6
    funagi  
       May 6, 2013
    import requests
    requests.head('http://img3.douban.com/lpic/s3218545.jpg').headers.get('content-length')


    http://docs.python-requests.org/en/latest/



    OR



    import httplib
    conn = httplib.HTTPConnection('img3.douban.com')
    conn.request('HEAD', '/lpic/s3218545.jpg')
    res = conn.getresponse()
    for t in res.getheaders():
    if t[0] == 'content-length':
    length = t[1]
    break

    print(length)
    funagi
        7
    funagi  
       May 6, 2013
    for的缩进没了,请自行补上
    requests需要先安装才能用

    v2ex不用gits怎么贴代码来着……
    alexrezit
        8
    alexrezit  
       May 6, 2013
    @funagi
    貌似楼主说的是宽高尺寸吧...
    luztak
        9
    luztak  
       May 6, 2013
    @alexrezit 文件大小用HEAD
    图片*尺寸* 读jpg文件头啊...
    muzuiget
        10
    muzuiget  
       May 6, 2013
    不可能吧,顶多能做到下载文件头几个字节判断,期望里面包含了尺寸数据。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5632 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 96ms · UTC 07:27 · PVG 15:27 · LAX 00:27 · JFK 03:27
    ♥ Do have faith in what you're doing.