什么是图片懒加载?html
图片懒加载是一种网页优化技术。图片做为一种网络资源,在被请求时也与普通静态资源同样,将占用网络资源,而一次性将整个页面的全部图片加载完,将大大增长页面的首屏加载时间。为了解决这种问题,经过先后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减小首屏图片请求数的技术就被称为“图片懒加载”。后端
网站通常如何实现图片懒加载技术呢?浏览器
在网页源码中,在img标签中首先会使用一个“伪属性”(一般使用src2,original......)去存放真正的图片连接而并不是是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。网络
案例分析:优化
抓取站长素材http://sc.chinaz.com/中的图片数据,经过细致观察页面的结构后发现,网页中图片的连接是存储在了src2这个伪属性中网站
代码以下url
import requests from lxml import etree url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } # 获取页面文本数据 response = requests.get(url=url, headers=headers) response.encoding = 'utf-8' page_text = response.text # 解析页面数据(获取页面中的图片连接) # 建立etree对象 tree = etree.HTML(page_text) div_list = tree.xpath('//div[@id="container"]/div') # 解析获取图片地址和图片的名称 for div in div_list: image_url = div.xpath('.//img/@src2') # src2伪属性 image_name = div.xpath('.//img/@alt') print(image_url) # 打印图片连接 print(image_name) # 打印图片名称