在上篇博客里我们谈到了漫画数据的拉取思路以及获取数据的基本操作,不过最后我们也遇到了一些问题。
上篇里,我们发现获取到的数据中,只有图片是无法正常显示的,而在文章最后我们也知道了造成这一问题的原因就在于,Jsoup本身无法渲染JS的动态内容,从而导致了获取到的图片URL只是网页本来的静态数据。
本篇我就分享一下针对这个问题的其中一种解决方案吧。
如果您还没有看过之前的篇章,可以直接点击下列标题前往查看:
本篇说明性内容较多,还请耐心观看QAQ。
在开始前,我们可以稍微思考一下,我们平时是怎么看到这些动态生成的图片URL的呢?嗯是的,当然是浏览器帮忙处理好的了。
如果Jsoup无法动态加载JS,那如果我们拉个帮手来呢?嗯,好主意。
对的,本篇我们要做的就是拉一个“浏览器”来做帮手!
不过你可能要吐槽了,用浏览器来辅助加载,那速度也太慢了吧?平时加载一个网页都十分费劲了。
是的,但也不全是。平时我们使用的浏览器,为了兼容各种情况,所以性能会有所妥协。但我们要实现的功能,并非真的去加载一整个完整的网页,我们只需要获取到图片的动态Tag值就够了。
安卓本身也自带了WebView这样一个用来加载网页的控件,不过你要是真的用过的话,会发现这个控件加载网页的速度非常慢,甚至网页也会经常加载不出来。
那么我们可能会考虑使用其他厂商提供的一些浏览器内核来进行优化。
比如腾讯的X5内核,也就是QQ、微信上用来加载网页那个(有兴趣可以点击这里前往下载),不过经过我的测试发现,将QX5内核应用到我们当前这个项目中,带来的改进效果并不明显,稳定性是提高了,但是带来的加载速度提升只有1~2倍。
比方说在测试中,我加载下列示例APP漫画首页内容所需要的时间: