我正在使用'SwiftSoup‘软件开发工具包解析来自UIWebView的HTML内容。我想要的图像大小和分辨率的每一个图像从HTML内容中提取。如何在加载图像并从SwiftSoup接收到的HTML内容中获取图像大小和分辨率?
发布于 2018-03-07 22:48:58
假设您知道HTML中的所有图像都已加载,下面是一段javascript代码,可用于获取所有图像的大小列表:
let script = "JSON.stringify([].slice.call(document.getElementsByTagName('img')).map(function(img) { return {url: img.src, width: img.clientWidth, height: img.clientHeight} }))"通过stringByEvaluatingJavaScript(from:)执行这个javascript应该会得到一个JSON,您可以解析它来获得所需的信息。
例如,此页的输出为
[{"url":"https://i.stack.imgur.com/rQQMq.png?s=48&g=1","width":24,"height":24},{"url":"https://www.gravatar.com/avatar/46be6ae9d14855f5ab1aaf1d510ab8bc?s=32&d=identicon&r=PG&f=1","width":32,"height":32},{"url":"https://clc.stackoverflow.com/impression.gif?an=49ocs77evOWqh-6LVv8gJiaWI_07xL9f6GBcyDt7dl3NWtNsxo9-twOOBzKwMPRsYGBosGdkZGCRZuqawDHjMeecj4L_WRhSDiyObbJ82JRhP5vp7j6Og2e4ru0W9mRhmNs0gbnc8pVcsT0jc2Z-sTTTwxaOliucyy4LsrAwFLRcfRVt-e6KDEjTco4LjVyda4XkgZqaJcJzLa9Oj4RoMrJk4eJgYpBgYGDg4o1ij5VnYhAHsvk4o9gSmZgYRIBsfmYbtrvCTAxiIHH2ALapwv3t9i1z_NRrAA&md=291","width":0,"height":0}]不过,我建议切换到WKWebView,因为它也是苹果推荐的,而且stringByEvaluatingJavaScript(from:)是阻塞的(WKWebView提供了此函数的异步版本,该函数也将为您执行解析,因此您可以从脚本中删除JSON.stringify()调用)。
https://stackoverflow.com/questions/49153988
复制相似问题