美文网首页
web脚本回访

web脚本回访

作者: 阿登20 | 来源:发表于2021-05-16 13:58 被阅读0次
    record.gif
    from selenium import webdriver
    import threading
    import os
    import time
    from PIL import Image
    
    
    def clear_dir(path):
        """创建或清空目录"""
        if not os.path.isdir(path):
            os.mkdir(path)  # 创建目录
        else:  # 清空目录
            [os.remove(os.path.join(path, file_name)) for file_name in os.listdir(path)]
    
    
    def shot(dr, img_dir):
        """循环截图函数"""
        i = 0
        clear_dir(img_dir)  # 清空目录
        while True:
            img_file = os.path.join(img_dir, f'{i}.png')
            try:
                dr.save_screenshot(img_file)
            except:
                return
            i += 1
    
    
    # Selenium操作
    img_dir = 'img'  # 临时图片目录
    dr = webdriver.Chrome()
    
    t = threading.Thread(target=shot, args=(dr, img_dir))  # 新建线程
    t.start()  # 启动截图线程
    
    dr.get('https://www.baidu.com')
    dr.find_element('id', 'kw').send_keys('阿登20 简书')
    dr.find_element('id', 'su').click()
    time.sleep(1)
    dr.get('https://www.qq.com')
    dr.back()
    time.sleep(2)
    dr.quit()
    
    # 图片拼接成gif
    img_list = os.listdir(img_dir)  # 列出目录所有图片
    img_list.sort(key=lambda x: int(x[:-4]))  # 排序
    
    first_img = Image.open(os.path.join(img_dir, img_list[0]))  # 第一张图片对象
    else_imgs = [Image.open(os.path.join(img_dir, img)) for img in img_list[1:]]  # 剩余图片对象
    
    first_img.save("record.gif", append_images=else_imgs,
                   duration=300,  # 每张图片的过过渡时间
                   save_all=True) # 拼接保存,如果想要循环播放可以加上loop=0
    

    相关文章

      网友评论

          本文标题:web脚本回访

          本文链接:https://www.haomeiwen.com/subject/kyxrjltx.html