1

我需要获取 html 页面中图像的显示/视觉图像尺寸。我正在使用 JSOUP。

我可以通过将图像作为流检索来获得实际的图像尺寸,但我不需要图像的实际大小,而只需要显示大小。

无法保证img 标签是否包含 height 和 width html 属性,因此我不能依赖 getAttribute 方法。

如果我能得到任何建议,那将是很大的帮助。

提前致谢。

4

2 回答 2

2

这是一项不平凡的任务。

要获得适用于任何页面(包括动态添加的内容)的真实图像大小,需要使用无头浏览器并在文档完全加载后使用 javascript 查询显示大小。如果您可以注入 jQuery javascript 框架,jQuery.width() jQuery.height()则将分别返回渲染的宽度和高度。执行相同操作的纯 javascript 函数是特定于浏览器的。

假设图像不是动态添加或更改的,则解析以查找以下内容就足够了:

  1. html 的宽度或高度属性直接在 html 标签上设置,如下所示<img width="150px" height="100px">
  2. 像这样在样式属性中设置css宽度或高度<img style="width: 150px; height: 100px;">,最后
  3. 解析链接到文档中的所有 css 文件,并通过 id 和 class 将图像标签匹配<img id="some-image-id" class="some-class">到一些看起来像这样的 css 规则来查找 css 规则#some-image-id, .some-image-class { width: 150px; height: 100px; }
于 2013-09-14T14:48:07.937 回答
1

JSOUP 只会为您提供 HTML 中的内容,因此您必须依赖标记中的内容(img 标记属性)。实际大小取决于浏览器如何显示它,它是特定于供应商的。

于 2013-09-14T14:26:38.417 回答