• 图片懒加载


    What is 图片懒加载?

      图片懒加载是一种网页优化技术,图片在被请求时也与普通静态资源一样,占用资源,然而当一个图片类型在刚被初次请求的时候不可以一次性加载所有的图片,因为这样太过于浪费网络资源,还增加了页面加载时间,通过前后端配合处理,使图片仅在浏览器当前视窗内出现的时候才加载该图片,达到减少首屏图片请求数的技术就被称为“图片懒加载”。

    如何实现图片懒加载?

      在网页源码中,在img标签中设置伪属性(通常为src2,original..等)去存放真正的图片链接,而并非直接存放到src属性中,当图片出现到页面可视化区域时,会动态将伪属性替换成src属性,完成图片的加载 !

    机制

      当用户拖动滚轮,当某些图片出现到可视化区域,马上加载源码中img标签,请求到数据!

    相关案例

    #站长素材案列
    import requests
    from lxml import etree
    from urllib import request
    
    url = "http://sc.chinaz.com/tupian/huangsetupian.html"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
    }
    response = requests.get(url=url,headers=headers)
    response.encoding = "utf-8"
    page_text = response.text
    
    tree = etree.HTML(page_text)
    
    div_list = tree.xpath("//div[@id='container']/div")
    for div in div_list:
        img_name = div.xpath("./p/a/text()")[0] + ".jpg"
        img_url = div.xpath("./div/a/img/@src2")[0] #src2为伪属性 !!!
        #如果中文乱码,可以用以下代码处理
    #     img_name = img_name.encode('iso-8859-1').decode('gbk')
        request.urlretrieve(url=img_url,filename=f"./zz-img/{img_name}")
        print(f"{img_name}爬取成功")
  • 相关阅读:
    Windows Phone 应用程序的全球化 狼人:
    幽默:编程语言 / 操作系统
    幽默:编程语言 / 操作系统
    程序员的幽默
    游戏杆编程心得二:如何判断按钮的有效按下
    DirectX 7.0 SDK在VC 6.0环境中使用的注意事项
    游戏杆编程心得
    HTML 5 WebSocket 示例
    HTML 5 WebSocket 示例
    慎用VC 6.0
  • 原文地址:https://www.cnblogs.com/CrazySheldon1/p/10836695.html
Copyright © 2020-2023  润新知