【问题标题】:Get Image size from URL从 URL 获取图像大小
【发布时间】:2020-03-14 14:16:17
【问题描述】:

我有一个来自 Wordpress 网站的图像 URI 列表。 我希望能够有一个脚本来仅使用 URI 来获取它们的文件大小(mb、kb、GB)。 我无权访问此服务器,需要将尺寸添加到 Google 表格中。这似乎是最快的方法,因为有超过 5k 的图像和附件。

但是当我在 Python 中这样做时

>>> import requests
>>> response = requests.get("https://xxx.xxxxx.com/wp-content/uploads/2017/05/resources.png")
>>> len(response.content)
3232

我得到 3232 字节,但是当我检查 Chrome 开发工具时,它是 3.4KB

添加了什么?还是图像实际上是 3.4KB 而我的脚本只是检查内容长度? 另外,我不想使用 Content-Length 标头进行检查,因为某些图像可能很大且分块,因此我想确保获得图像的实际文件大小。

有什么好的方法可以解决这个问题?我觉得应该有一些我可以运行的最小代码或脚本。

【问题讨论】:

    标签: python wordpress http http-headers wordpress-rest-api


    【解决方案1】:

    您看到的值 (3.4KB) 包括响应标头等网络开销。

    附带说明,我不确定您使用的 Chrome 版本是什么,但传输大小(包括响应标头)和资源大小(即文件大小)对我来说是分开显示的:

    【讨论】:

    • 太棒了!是的,我在悬停时看到它!谢谢!你会相信Content-Length 标头来获取我需要的信息吗?
    • 是的,Content-Length 标头必须正确,除非在服务器端配置了严重错误。
    • 即使数据被“分块”,requests.get() 也会在“整个请求”完成后获取大图像?
    • @KyleCalica-St:不,请求不会稍后添加标头;使用分块响应时,不会向您提供内容长度。此外,如果数据通过压缩提供,则内容长度可以更短!见stackoverflow.com/a/50825553
    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多