我需要获取 html 页面中图像的显示/视觉图像尺寸。我正在使用 JSOUP。
我可以通过将图像作为流检索来获得实际的图像尺寸,但我不需要图像的实际大小,而只需要显示大小。
无法保证img 标签是否包含 height 和 width html 属性,因此我不能依赖 getAttribute 方法。
如果我能得到任何建议,那将是很大的帮助。
提前致谢。
我需要获取 html 页面中图像的显示/视觉图像尺寸。我正在使用 JSOUP。
我可以通过将图像作为流检索来获得实际的图像尺寸,但我不需要图像的实际大小,而只需要显示大小。
无法保证img 标签是否包含 height 和 width html 属性,因此我不能依赖 getAttribute 方法。
如果我能得到任何建议,那将是很大的帮助。
提前致谢。
这是一项不平凡的任务。
要获得适用于任何页面(包括动态添加的内容)的真实图像大小,需要使用无头浏览器并在文档完全加载后使用 javascript 查询显示大小。如果您可以注入 jQuery javascript 框架,jQuery.width()
jQuery.height()
则将分别返回渲染的宽度和高度。执行相同操作的纯 javascript 函数是特定于浏览器的。
假设图像不是动态添加或更改的,则解析以查找以下内容就足够了:
<img width="150px" height="100px">
,<img style="width: 150px; height: 100px;">
,最后<img id="some-image-id" class="some-class">
到一些看起来像这样的 css 规则来查找 css 规则#some-image-id, .some-image-class { width: 150px; height: 100px; }
JSOUP 只会为您提供 HTML 中的内容,因此您必须依赖标记中的内容(img 标记属性)。实际大小取决于浏览器如何显示它,它是特定于供应商的。