鱼C论坛

 找回密码
 立即注册
查看: 1359|回复: 0

[技术交流] 动态加载--懒加载----站长素材

[复制链接]
发表于 2019-4-14 03:59:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Stubborn 于 2019-4-14 04:02 编辑

举个栗子把,京东,当你打开界面往下滑动的时候,一些内容或者图片才会加载出来,借此提升“渲染速度”,增强用户体验。并不是你请求一瞬间一股脑字全部甩给你的。
这里以站长素材为例。
# -*- coding:utf-8 -*-
# @Time    : 2019-04-07 16:44
# @Author  : Ein
# @File    : 懒加载-站长素材.py
# @Software: PyCharm
from urllib import request
from lxml import etree
import os,time
import urllib


def handle_reuqest(url,page):

    if page == 1:
        url = url.format('')
    else:
        url = url.format('_'+str(page))

    headers = {
        'User - Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }
    response = request.Request(url=url,headers=headers)
    return response


def download_img(imgsrc):
    dirpath = "性感"
    #创建文件名字
    if not os.path.exists(dirpath):
        os.mkdir(dirpath)
    #文件名
    filename = os.path.basename(imgsrc)
    #图片路径
    filepath = os.path.join(dirpath,filename)
    #发送请求保存图片
    reque = request.Request(url=imgsrc)
    response = request.urlopen(reque)
    with open(filepath,'wb') as fp:
        fp.write(response.read())


def parse_connt(connt):
    tree = etree.HTML(connt)
    img_list = tree.xpath("//div[@id='container']/div/div/a/img/@src2")
    '''懒加载技术:用到的再加载
            实现方式:
                <img src2 = '图片路径'>  通过js动态的添加
                <img src = '图片路径' src2=''>
    如上的img_list是图片链接,下载保存即可
    '''
    for img_src in img_list:
        download_img(img_src)




def main():
    url = 'http://sc.chinaz.com/tupian/xingganmeinvtupian{}.html'

    for page in range(1,2):
        response = handle_reuqest(url,page)
        connt = request.urlopen(response).read().decode()
        parse_connt(connt)
        time.sleep(2)



if __name__ == '__main__':
    main()

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-17 03:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表