什么是异步加载呢?先看看以下网站的特征

这个网站没有第一页、第二页、、等结构,我们直接鼠标下滑就能不断的向下浏览。

Android AnimationDrawable异步加载 异步加载页面_保存图片


这就是异步加载的网站,传统的网站网页如果需要更新内容,必须重载整个网页页面,这样会浪费资源,无论是宽带资源还是时间资源。

异步加载的网页更新可以只更新部分内容而不需重新加载整个页面,更加高效和节约资源。有时我们发现爬取代码没有问题但是爬取不到内容,这很有可能时遇到了异步加载的网页。

爬取异步加载的网页首要任务是找到网页的正确链接,以下直接上代码,爬取book的图片:

Android AnimationDrawable异步加载 异步加载页面_取代码_02


Android AnimationDrawable异步加载 异步加载页面_取代码_03


结果还是比较满意的,但是大家要有心理准备,速度比较慢

那么代码中需要解释的部分

1、网页链接

因为没有手动翻页,所以就要自行去寻找链接的规律

Android AnimationDrawable异步加载 异步加载页面_取代码_04


然后我们发现变化的地方就是page={},我们在网页内不断的下滑,会发现左侧项目不断增加,但是url的变化始终是page={},注意如果没有显示项目,可以按F5刷新。

Android AnimationDrawable异步加载 异步加载页面_保存图片_05


我们将url简化为https://www.pexels.com/search/book/?page=4,发现也是可以完整打开的,这样,我们就有办法构造每以页的链接了。2、获得图片的链接

内容可以用get_text(),获取,但是图片链接需要get(‘src’)获取,顺便提一下,每个详细页的链接用get(‘href’)获取

Android AnimationDrawable异步加载 异步加载页面_取代码_06


3、图片的保存

获得链接后,就可以保存图片了,命名我们采用path+item.split("?")[0][-10:]

其意义如下图

Android AnimationDrawable异步加载 异步加载页面_异步加载_07


以上就是异步加载网站,爬取图片的方法,学习啦。