一款漫画APP的实现(三)- 数据拉取 ② - 拉取速度改进

本文介绍了如何解决漫画APP在数据拉取过程中遇到的动态图片URL无法显示的问题。通过引入AgentWeb轻量级内核,实现了比WebView快近10倍的加载速度,解决了Jsoup无法渲染JS动态内容的限制。文中提供了封装好的类库,通过模拟浏览器加载网页,实时获取渲染后的源码,然后用Jsoup解析,以获取动态图片的src。对于不需要加载图片的场景,仍建议使用Jsoup的connect()方法以保持快速加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上篇博客里我们谈到了漫画数据的拉取思路以及获取数据的基本操作,不过最后我们也遇到了一些问题。

上篇里,我们发现获取到的数据中,只有图片是无法正常显示的,而在文章最后我们也知道了造成这一问题的原因就在于,Jsoup本身无法渲染JS的动态内容,从而导致了获取到的图片URL只是网页本来的静态数据。

本篇我就分享一下针对这个问题的其中一种解决方案吧。

如果您还没有看过之前的篇章,可以直接点击下列标题前往查看:


本篇说明性内容较多,还请耐心观看QAQ。

在开始前,我们可以稍微思考一下,我们平时是怎么看到这些动态生成的图片URL的呢?嗯是的,当然是浏览器帮忙处理好的了。

如果Jsoup无法动态加载JS,那如果我们拉个帮手来呢?嗯,好主意。

对的,本篇我们要做的就是拉一个“浏览器”来做帮手!

不过你可能要吐槽了,用浏览器来辅助加载,那速度也太慢了吧?平时加载一个网页都十分费劲了。

是的,但也不全是。平时我们使用的浏览器,为了兼容各种情况,所以性能会有所妥协。但我们要实现的功能,并非真的去加载一整个完整的网页,我们只需要获取到图片的动态Tag值就够了。

安卓本身也自带了WebView这样一个用来加载网页的控件,不过你要是真的用过的话,会发现这个控件加载网页的速度非常慢,甚至网页也会经常加载不出来。

那么我们可能会考虑使用其他厂商提供的一些浏览器内核来进行优化。

比如腾讯的X5内核,也就是QQ、微信上用来加载网页那个(有兴趣可以点击这里前往下载),不过经过我的测试发现,将QX5内核应用到我们当前这个项目中,带来的改进效果并不明显,稳定性是提高了,但是带来的加载速度提升只有1~2倍

比方说在测试中,我加载下列示例APP漫画首页内容所需要的时间:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值