python+selenium+Chrome 监测文件是否下载完毕

简介: python+selenium+Chrome 监测文件是否下载完毕

一、版本

python 3.5

selenium 4.1.0

pycharm 社区版

二、代码

其实我感觉firefox的也可以。这个方法网上是没有的,selenium也未提供下载完成判断。

@staticmethod
    def judge_file_exist(is_check,check_times,check_interval_sec,check_path,filter_down_file,check_ext):
        """
        检测函数
        :param is_check:是否检测True表示检测False 不检查
        :param check_times:检测次数
        :param check_interval:检测时间间隔(默认值)
        :param check_path:检测路径(默认值)
        :param chedk_ext:检测扩展名(默认值)
        :return:返回真假
        """
        if os.path.exists(check_path) is False:
            raise Exception("路径不存在...")
        if str.isdigit(str(check_times)) is False:
            raise Exception("检测次数不是数字...")
        if is_check is False:
            return True,"不进行检测" #直接执行下一步操作
        else:
            for number in range(1,int(check_times)):
                print("正在进行第"+str(number)+"次检测...")
                sleep(0.5) #延迟1s经常检测不到
                files = os.listdir(check_path) # 读取目录下所有文件
                if len(filter_down_file) > 0:
                    for file in files:
                        for filter_file in filter_down_file:
                            if str(file) in str(filter_file):
                                files.remove(filter_file)
                                BaseFrame().right(filter_file + "文件被过滤...")
                                pass
                file_number=len(files)
                if file_number ==0:
                    #不存在任何文件,休眠一会 继续执行下一次
                    sleep(int(check_interval_sec))  # 休眠一会
                    return False, "0个文件认定是False"
                elif file_number==1:
                    file_name=files[0]
                    #crdownload
                    file_full_name=check_path+os.sep+file_name
                    file_ext=os.path.splitext(file_full_name)[-1]
                    if "crdownload"==str(file_ext.split(".")[1]):
                        sleep(int(check_interval_sec))  # 休眠一会
                        continue
                    if "tmp" == str(file_ext.split(".")[1]):
                        sleep(int(check_interval_sec))  # 休眠一会
                        continue
                    if "exe" == str(file_ext.split(".")[1]):
                        os.remove(file_full_name)
                        print("清理exe文件")
                        continue
                    for e in check_ext.split("|"):
                        if e == str(file_ext.split(".")[1]).lower():
                            return True,file_full_name
                        else:
                            sleep(int(check_interval_sec))  # 休眠一会
                            continue
                else:
                    return False,"多个文件认定是False"
            return False,"可能是不存在文件或者是tmp或crdownload文件"

三、核心

核心就是定期检测指定文件夹。 监测过程有很多特例需要判断。

目录
相关文章
|
10月前
|
Web App开发 存储 数据处理
Chrome 下载大文件报错!用 Streamsaver.js 完美填坑
本文探讨了Chrome下载大文件报“网络错误”的原因及解决方案。由于Chrome对Blob数据有大小限制,导致大文件下载失败。通过将responseType改为ArrayBuffer可临时解决1-2G文件问题,但超3G仍会崩溃。最佳方案是使用Streamsaver.js实现流式下载,边接收边保存,避免内存溢出,完美支持超大文件下载。
5289 3
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
1212 68
|
11月前
|
SQL 测试技术 数据库
healenium+python+selenium
上次介绍了如何利用healenium+java+selenium来实现selenium的自愈,这次介绍如何healenium+python+selenium。关于healenium+python+selenium网上资料更少,并且甚至是错误的。在著名的书籍《软件测试权威指南中》也是有一定问题的。现在介绍如下
521 4
|
11月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
数据采集 Web App开发 前端开发
Python+Selenium爬虫:豆瓣登录反反爬策略解析
Python+Selenium爬虫:豆瓣登录反反爬策略解析
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
804 1
打造高效的Web Scraper:Python与Selenium的完美结合
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。

推荐镜像

更多