【发布时间】:2013-09-14 14:13:03
【问题描述】:
我需要获取 html 页面中图像的显示/视觉图像尺寸。我正在使用 JSOUP。
我可以通过将图像作为流检索来获得实际的图像尺寸,但我不需要图像的实际大小,而只需要显示大小。
无法保证img标签是否包含html的height和width属性,所以我不能依赖getAttribute方法。
如果我能得到任何建议,那将是很大的帮助。
提前致谢。
【问题讨论】:
标签: java html web-scraping jsoup
我需要获取 html 页面中图像的显示/视觉图像尺寸。我正在使用 JSOUP。
我可以通过将图像作为流检索来获得实际的图像尺寸,但我不需要图像的实际大小,而只需要显示大小。
无法保证img标签是否包含html的height和width属性,所以我不能依赖getAttribute方法。
如果我能得到任何建议,那将是很大的帮助。
提前致谢。
【问题讨论】:
标签: java html web-scraping jsoup
这是一项不平凡的任务。
要获得适用于任何页面(包括动态添加的内容)的真实图像大小,需要使用无头浏览器并在文档完全加载后使用 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 标记属性)。 实际大小取决于浏览器的显示方式,具体取决于供应商。
【讨论】: