diff --git a/DownloadKit/downloadKit.py b/DownloadKit/downloadKit.py
index dfffbabe88a6edf8c2059fe974c4144c45a87322..f35aadc5df874980c72f9cc28e3a0407e532e0d9 100644
--- a/DownloadKit/downloadKit.py
+++ b/DownloadKit/downloadKit.py
@@ -234,7 +234,7 @@ class DownloadKit(object):
self.show(False)
else:
end_time = perf_counter() + timeout
- while self.is_running or (perf_counter() < end_time or timeout == 0):
+ while self.is_running and (perf_counter() < end_time or timeout == 0):
sleep(0.1)
def cancel(self):
diff --git a/docs/.keep b/docs/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 54d23f48ad8393138c86b122863e10e3f33f29a1..0000000000000000000000000000000000000000
--- a/docs/README.md
+++ /dev/null
@@ -1,268 +0,0 @@
-
----
-
-## `DownloadKit`属性
-
-- goal_path:文件保存路径,可赋值
-- roads:可同时允许的线程数,没有任务运行时可赋值
-- block_size:大文件分块大小,默认 20MB
-- retry:下载失败重试次数,可赋值
-- interval:下载失败重试间隔,可赋值
-- timeout:连接超时时间,可赋值
-- file_exists:遇到同名文件时的处理方式,可赋值,可选`'skip'`、`'overwrite'`、`'rename'`
-- session:用于连接的`Session`对象
-- waiting_list:等待下载的队列
-- is_running:返回是否有线程还在运行
-
-**`file_exists`属性说明:**
-
-- `skip`:跳过该文件
-- `overwrite`:覆盖该文件
-- `rename`:以在后面添加序号的方式给新文件重命名
-
-**`block_size`属性说明:**
-
-该属性可接收`int`和`str`形式,接收`int`时以字节为单位;
-接收`str`时格式有:`'10b'`、`'10k'`、`'10m'`、`'10g'`四种。不区分大小写。
-
-## 下载设置
-
-可使用以下属性进行配置:
-
-```python
-d = DownloadKit()
-
-# 设置线程数,只能在没有任务在运行的时候进行
-d.roads = 20
-
-# 大文件分块大小,默认 20MB
-d.block_size = '50M'
-
-# 设置保存路径,设置后每个任务会使用这个路径,也可添加任务时单独设置
-d.goal_path = r'D:\tmp'
-
-# 设置重试次数,初始为3
-d.retry = 5
-
-# 设置失败重试间隔,初始为5
-d.interval = 2
-
-# 设置存在文件名冲突时的处理方式,可选 'skip', 'overwrite', 'rename'
-d.file_exists = 'skip'
-```
-
-
-
-## 添加下载任务
-
-使用`add()`方法添加下载任务。
-
-参数:
-
-- file_url:文件网址
-- goal_path:保存路径
-- rename:重命名的文件名
-- file_exists:遇到同名文件时的处理方式,可选`'skip'`,`'overwrite'`,`'rename'`,默认跟随实例属性
-- split:是否允许多线分块下载
-- kwargs:连接参数,与 requests 的参数使用方法一致
-
-返回:`Mission`对象
-
-使用`add()`方法返回的`Mission`对象可便于后续查看任务状态和进度。
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-
-url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-mission = d.add(url)
-```
-
-## 添加连接参数
-
-可以给`Session`对象添加整体参数,或每个任务设置独立的参数。
-
-**整体参数:**
-
-```python
-from requests import Session
-from DownloadKit import DownloadKit
-
-session = Session()
-session.headers={'xxxx': 'xxxx'}
-d = DownloadKit(session=session)
-```
-
-更简便的方法是使用`SessionOptions`。该对象可使用保存在配置文件里的参数,免得每次在代码里设置复杂的`headers`
-等参数,方便易用。详见:[DrissionPage]([🔧 Session 启动配置 (gitee.io)](http://g1879.gitee.io/drissionpage/#/使用方法\启动配置\Session启动配置))
-
-```python
-from DrissionPage.config import SessionOptions
-from DownloadKit import DownloadKit
-
-so = SessionOptions().set_proxies({'http': 'http://127.0.0.1'})
-d = DownloadKit(session=so)
-```
-
-**任务独立设置参数:**
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-
-url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-proxies = {'http': 'http://127.0.0.1'}
-d.add(url, proxies=proxies)
-```
-
-## 任务连接方式
-
-任务可以用 get 或 post 方式,默认使用 get 方式,添加任务时,传入`data`或`json`参数即可使用 post 方式。
-
-```python
-url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-
-# 使用 get 方式
-d.add(url)
-
-# 使用 post 方式
-data = {'xxx': 'xxx'}
-d.add(url, json=data)
-# 或
-d.add(url, data=data)
-```
-
-**Tips:** `json`参数没有显式写在参数里,但直接调用即可。
-
-
-
-## 观察下载过程
-
-`show()`方法可实时显示所有线程下载过程。
-
-**注意:** 若使用 pyCharm 运行,须在运行配置里勾选“模拟输出控制台中的终端”才能正常显示输出。
-
-参数:
-
-- asyn:是否异步进行
-- keep:是否保持显示,为`True`时即使任务全部结束,也会保持显示,可按回车结束显示
-
-返回:None
-
-```python
-d = DownloadKit(r'.\files', size=3)
-url = 'https://example.com/file/abc.zip'
-mission = d.add(url)
-d.show()
-```
-
-输出:
-
-```shell
-等待任务数:0
-线程0:M1 D:\files\abc.zip
-线程1:M1 D:\files\abc.zip
-线程2:空闲
-```
-
-
-
-## 等待任务结束
-
-有时须要等待任务结束,以便获取结果,可用`DownloadKit`对象或`Mission`对象的`wait()`方法。
-当传入任务时,等待该任务结束并返回结果。不传入参数时等待所有任务结束,与`show()`方法一致。
-
-`DownloadKit`对象的`wait()`方法:
-
-参数:
-
-- mission:任务对象或任务`id`,为`None`时等待所有任务结束
-- show:是否显示进度
-
-返回:
-
-- 指定任务时,返回任务结果和信息组成的两位 tuple。其中任务结果`'success'`表示成功,`False`表示失败,`'skip'`表示跳过。成功和跳过时信息为文件绝对路径,失败时信息为失败原因
-- 不指定任务时,返回`None`
-
-`Mission`对象的`wait()`方法
-
-参数:
-
-- show:是否显示进度
-
-返回:返回任务结果和信息组成的两位 tuple。其中任务结果`'success'`表示成功,`False`表示失败,`'skip'`表示跳过。成功和跳过时信息为文件绝对路径,失败时信息为失败原因
-
-```python
-d = DownloadKit(r'.\files')
-url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-mission = d.add(url)
-d.wait(mission)
-# 或
-mission.wait()
-```
-
-输出:
-
-```shell
-url:https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png
-文件名:PCfb_5bf082d29588c07f842ccde3f97243ea_4.png
-目标路径:D:\files
-100% 下载完成 D:\files\PCfb_5bf082d29588c07f842ccde3f97243ea_4.png
-```
-
-**Tips:** `Mission`对象也有`wait()`方法,作用与上述的一致。
-
-```python
-mission = d.add(url)
-mission.wait()
-```
-
-## 获取某个任务结果
-
-`Mission`对象用于管理下载任务,可查看该任务执行情况。
-
-**`Mission`对象属性:**
-
-- id:任务 id
-- file_name:要保存的文件名
-- path:要保存的路径,为Path对象
-- data:任务数据
-- state:任务状态,有`'waiting'`、`'running'`、`'done'`三种
-- rate:任务进度,以百分比显示
-- info:任务信息,成功会返回文件绝对路径,失败会显示原因
-- result:任务结果,`'success'`表示成功,`False`表示失败,`'skip'`表示跳过
-
-```python
-mission = page.download.add(url)
-print(mission.state)
-```
-
-输出:
-
-```python
-running
-```
-
-
-
-## 取消某个正在下载的任务
-
-使用`Mission`对象的`cancel()`方法,取消会删除该任务已下载的文件。
-
-```python
-mission.cancel()
-```
-
-
-
-## 获取失败任务
-
-使用`DownloadKit`对象的`get_failed_missions()`方法,可获取下载失败的任务。可以把失败的任务保存到文件,支持 txt、xlsx、txt、csv 四种格式。
-
-参数:
-
-- save_to:失败任务保存到文件的路径,默认为`None`表示不保存
-
-返回:`Mission`对象组成的列表
\ No newline at end of file
diff --git a/docs/add_missions.md b/docs/add_missions.md
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/docs/create_object.md b/docs/create_object.md
deleted file mode 100644
index 0f3ae8ee7ee3781d0e61fc3a500829f2c3dcfd14..0000000000000000000000000000000000000000
--- a/docs/create_object.md
+++ /dev/null
@@ -1,56 +0,0 @@
-## 创建`DownloadKit`对象
-
-|初始化参数|类型|默认值|说明|
-|:---:|:---:|:---:||
-|`goal_path`|`str`
`Path`|`None`|文件保存路径|
-|`roads`|`int`|`10`|可同时运行的线程数|
-|`driver`|`Session`
`SessionOptions`
`ChromiumPage`
`SessionPage`
`ChromiumTab`
`WebPage`
`WebPageTab`|`None`|用于提供下载连接信息的页面或链接对象|
-|`file_exists`|`str`|`'renmae'`|有同名文件名时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'`|
-
----
-
-## 示例
-
-### 直接创建
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-```
-
----
-
-### 接收`Session`对象
-
-```python
-from requests import Session
-from DownloadKit import DownloadKit
-
-session = Session()
-d = DownloadKit(session=session)
-```
-
----
-
-### 接收`SessionOptions`对象
-
-```python
-from DrissionPage import SessionOptions
-from DownloadKit import DownloadKit
-
-so = SessionOptions()
-d = DownloadKit(session=so)
-```
-
----
-
-### 接收页面对象
-
-```python
-from DrissionPage import ChromiumPage
-from DownloadKit import DownloadKit
-
-p = ChromiumPage()
-d = DownloadKit(session=p)
-```
\ No newline at end of file
diff --git a/docs/history.md b/docs/history.md
deleted file mode 100644
index b7c68d1dd4f8b2a115300d1f761264004b782829..0000000000000000000000000000000000000000
--- a/docs/history.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-hide:
- - navigation
----
-
-## v1.0.2
-
-- 支持`DrissionPage` v3.2.31 版
-- 修改设置项 api,`set_xxxx()`改为`set.xxxx()`形式
-- `__init__()`方法的`session`用`driver`代替,但保留向后兼容
-- 可更准确显示下载进度
-- `Task`增加下载进度属性
-- 处理已存在文件的情况增加`add`模式
-- 增加日志设置
-- 优化程序逻辑,修复一些问题
-
----
-
-## v0.5.3
-
-- 支持`DrissionPage` v3.2.0 版
-- 增加`missions`属性
-
----
-
-## v0.4.4
-
-- 适配`DrissionPage` v3.1.0 版
-- 增加`split`全局 设置
-
----
-
-## v0.4.1
-
-- 支持`DrissionPage` v3.0 版
-- 增加`set_log()`、`set_print()`和`set_proxies()`
-- 改用`ByteRecorder`保存数据
-- 新增`MissionData`类
-- 大量修改结构,优化逻辑
-
----
-
-## v0.3.5
-
-- 新增`MissionData`类
-- `add()`方法删除`session`参数
-- `__init__()`方法删除`timeout`参数
-- 优化`timeout`、`retry`、`interval`属性逻辑
-
----
-
-## v0.3.3
-
-- `referer`参数可从传入的页面对象获取
-- 大量优化
-
----
-
-## v0.3.0
-
-- 完成主要功能
-- 完善逻辑
-
----
-
-## v0.1.0
-
-- 完成基本框架
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index 2299152dd511444d316afa53054459a253e21caf..0000000000000000000000000000000000000000
--- a/docs/index.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-hide:
- - navigation
----
-
-## 💬 简介
-
-DownloadKit 是一个基于 python 的简洁易用的多线程文件下载工具。
-使用简单,功能强大。
-
-当前版本:v1.0.2
-
----
-
-## 💖 特性
-
-- 多线程,可同时下载多个文件
-- 大文件自动分块用多线程下载
-- 自动任务调度,简易的任务添加方式
-- 可使用已有`Session`对象,便于保持登录状态
-- 与 DrissionPage 良好兼容
-- 自动创建目标路径
-- 自动去除路径中的非法字符
-- 自动处理文件名冲突
-- 可对现有文件追加内容
-- 连接失败自动重试
-
----
-
-## 💥 简单示例
-
-```python
-from DownloadKit import DownloadKit
-
-# 创建下载器对象
-d = DownloadKit(r'.\files')
-
-# 添加多个任务
-url1 = 'https://gitee.com/static/images/logo.svg?t=158106664'
-url2 = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-
-d.download(url1)
-d.download(url2)
-```
-
----
-
-## ☕ 请我喝咖啡
-
-如果本项目对您有所帮助,不妨请作者我喝杯咖啡 :)
-
-
\ No newline at end of file
diff --git a/docs/install_and_import.md b/docs/install_and_import.md
deleted file mode 100644
index 059c5f17a3362787d8dc2f339fa98522123857f7..0000000000000000000000000000000000000000
--- a/docs/install_and_import.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-hide:
- - navigation
----
-## 🎟️ 安装
-
-如果您安装过 DrissionPage,本库已自动安装。
-
-```shell
-pip install DownloadKit
-```
-
----
-
-## 🎫 导入
-
-```python
-from DownloadKit import DownloadKit
-```
\ No newline at end of file
diff --git a/docs/misssions.md b/docs/misssions.md
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/docs/settings.md b/docs/settings.md
deleted file mode 100644
index ad2a84aaf6986f214a62109f3369f69aaa2792ce..0000000000000000000000000000000000000000
--- a/docs/settings.md
+++ /dev/null
@@ -1,187 +0,0 @@
-本节介绍`DownloadKit`对象相关设置。
-
-## `使用方法`
-
-使用`DownloadKit`对象的`set`属性,可调用各种设置项。
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.block_size('10m') # 设置分块大小
-```
-
----
-
-## 运行设置
-
-### `set.driver()`
-
-此方法用于设置提供下载连接信息的页面或链接对象。
-
-支持 DrissionPage 所有页面对象、`Session`对象、`SessionOptions`对象。
-
-程序可从传入的对象中自动获取登录信息,如传入页面对象,还能自动设置`Referer`参数。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`driver`|`Session`
`SessionOptions`
`ChromiumPage`
`SessionPage`
`ChromiumTab`
`WebPage`
`WebPageTab`|必填|用于提供连接信息的对象|
-
-**返回:**`None`
-
----
-
-### `set.goal_path()`
-
-此方法用于设置文件保存路径。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`goal_path`|`str`
`Path`|必填|文件保存路径|
-
-**返回:**`None`
-
----
-
-### `set.if_file_exists()`
-
-此方法用于设置路径存在同名文件时的处理方式。
-
-可选`'skip'`, `'rename'`, `'overwrite'`, `'add'`。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`mode`|`str`|必填|处理方式字符串|
-
-**返回:**`None`
-
----
-
-### `set.if_file_exists.xxxx()`
-
-这几个方法用于设置路径存在同名文件时的处理方式。
-
-效果与`set.if_file_exists()`一致。
-
-- `skip()`:跳过,不下载
-- `rename()`:重命名,在原有文件名后加上`'_序号'`
-- `overwrite()`:覆盖原有文件
-- `add()`:在原有文件末尾追加内容
-
-**示例:**
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.if_file_exists.skip()
-```
-
----
-
-### `set.roads()`
-
-此方法用于设置可同时运行的线程数。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`num`|`int`|必填|线程数量|
-
-**返回:**`None`
-
----
-
-### `set.retry()`
-
-此方法用于设置连接失败时重试次数。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`times`|`int`|必填|重试次数|
-
-**返回:**`None`
-
----
-
-### `set.interval()`
-
-此方法用于设置连接失败时重试间隔。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`seconds`|`float`|必填|连接失败时重试间隔(秒)|
-
-**返回:**`None`
-
----
-
-### `set.timeout()`
-
-此方法用于设置连接超时时间。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`seconds`|`float`|必填|超时时间(秒)|
-
-**返回:**`None`
-
----
-
-### `set.split()`
-
-此方法用于设置大文件是否分块下载。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`on_off`|`bool`|必填|`bool`代表开关|
-
-**返回:**`None`
-
----
-
-### `set.block_size()`
-
-此方法用于设置设置分块大小。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`size`|`str`
`int`|必填|单位为字节,可用'K'、'M'、'G'为单位,如`'50M'`|
-
-**返回:**`None`
-
----
-
-### `set.proxies()`
-
-此方法用于设置代理地址及端口,例:'127.0.0.1:1080'。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`http`|`str`|`None`|http 代理地址及端口|
-|`https`|`str`|`None`|https 代理地址及端口|
-
-**返回:**`None`
-
----
-
-## 日志设置
-
-日志设置方法在`set.log`属性中。
-
-### `set.log_mode.xxxx()`
-
-这几个方法用于设置路径存在同名文件时的处理策略。
-
-- `skip()`:跳过,不下载
-- `rename()`:重命名,在原有文件名后加上`'_序号'`
-- `overwrite()`:覆盖原有文件
-- `add()`:在原有文件末尾追加内容
-
-**示例:**
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.if_file_exists.skip()
-```
\ No newline at end of file
diff --git a/docs/usage/APIs.md b/docs/usage/APIs.md
deleted file mode 100644
index 99cb015033a303cbf42085feafe40cc2b290b966..0000000000000000000000000000000000000000
--- a/docs/usage/APIs.md
+++ /dev/null
@@ -1,234 +0,0 @@
-## ✅️️ `DownloadKit`对象方法
-
-### 📌 `download()`
-
-此方法用于单线程阻塞式下载一个文件。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`file_url`|`str`|必填|文件网址|
-|`goal_path`|`str`
`Path`|`None`|保存路径,为`None`时保存到当前文件夹|
-|`rename`|`str`|`None`|指定文件另存的名称,可不带后缀,程序会自动补充|
-|`file_exists`|`str`|`None`|遇到同名文件时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'`,默认跟随实例属性|
-|`show_msg`|`bool`|`True`|是否打印下载信息和进度|
-|`**kwargs`|`Any`|无|requests 的连接参数|
-
-连接参数`**kwargs`与 requests 的`get()`方法一致。
-
-|参数名称|类型|说明|
-|:---:|:---:|---|
-|`timeout`|`float`|连接超时时间|
-|`params`|`dict`|查询参数字典|
-|`headers`|`dict`|headers|
-|`cookies`|`Any`|cookies|
-|`data`|`Any`|data 数据|
-|`json`|`Any`|json 数据|
-|`files`|`Any`|文件数据|
-|`auth`|`Tuple[str, str]`
`HTTPBasicAuth`|认证元组或对象|
-|`allow_redirects`|`bool`|是否允许自动跳转|
-|`proxies`|`dict`|代理 ip|
-|`hooks`|`dict`|回调方法|
-|`verify`|`bool`|是否验证SSL证书|
-|`cert`|`str`
`Tuple[str, str]`|SSL客户端证书|
-
-|返回类型|说明|
-|:---:|---|
-|`tuple`|格式:(任务结果, 任务信息)|
-
-任务结果有如下几种:
-
-- `'success'`:下载成功
-- `'skipped'`:已跳过
-- `'canceled'`:被取消
-- `False`:任务失败
-
-如果下载成功,任务信息返回文件路径,如果失败,返回失败原因。
-
----
-
-### 📌 `add()`
-
-此方法添加一个并发任务。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`file_url`|`str`|必填|文件网址|
-|`goal_path`|`str`
`Path`|`None`|保存路径,为`None`时保存到当前文件夹|
-|`rename`|``str`|`None`|指定文件另存的名称,可不带后缀,程序会自动补充|
-|`file_exists`|`str`|`None`|遇到同名文件时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'`,默认跟随实例属性|
-|`split`|`bool`|`None`|当前任务是否启用多线程分块下载,默认跟随实例属性|
-|`**kwargs`|`Any`|无|requests 的连接参数|
-
-`**kwargs`参数与`download()`一致,见上文。
-
-|返回类型|说明|
-|:---:|---|
-|`Mission`|任务对象,可用于观察任务状态、取消任务|
-
----
-
-### 📌 `wait()`
-
-此方法用于等待所有或指定任务完成。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`mission`|`Mission`
`int`|`None`|任务对象或任务 id,为`None`时等待所有任务结束|
-|`show`|`bool`|`False`|是否显示进度|
-|`timeout`|`float`
`None`|`None`|超时时间,`None`或`0`不限时|
-
----
-
-### 📌 `cancel()`
-
-此方法用于取消所有等待中或执行中的任务。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `get_mission()`
-
-此方法根据id值获取一个任务。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`mission_or_id`|`Mission`
`int`|必填|任务或任务 id|
-
-|返回类型|说明|
-|:---:|---|
-|`Mission`|任务对象|
-|`None`|没有找到该任务|
-
----
-
-### 📌 `get_failed_missions()`
-
-此方法返回失败任务列表。
-
-**参数:** 无
-
-|返回类型|说明|
-|:---:|---|
-|`List[Mission]`|任务对象组成的列表|
-
----
-
-## ✅️️`DownloadKit`属性
-
-### 📌 `goal_path`
-
-此属性返回文件默认保存文件夹路径,默认程序当前路径。
-
-**类型:** `str`
-
----
-
-### 📌 `file_exists`
-
-此属性返回遇到同名文件时的处理方式,有以下几种:`'skip'`, `'overwrite'`, `'rename'`, `'add'`。
-
-默认`'rename'`。
-
-**类型:** `str`
-
----
-
-### 📌 `split`
-
-此属性返回大文件是否分块下载,默认`True`。
-
-**类型:** `bool`
-
----
-
-### 📌 `set`
-
-此属性返回用于设置`DownloadKit`对象的设置对象。
-
-**类型:** `Setter`
-
----
-
-### 📌 `timeout`
-
-此属性返回连接超时时间,默认 20 秒,如果驱动是`DrissionPage`的页面对象,使用页面对象的`timeout`属性。
-
-**类型:** `float`
-
----
-
-### 📌 `retry`
-
-此属性返回连接失败时重试次数,默认`3`。
-
-**类型:** `int`
-
----
-
-### 📌 `interval`
-
-此属性返回连接失败时重试间隔,默认 5 次。
-
-**类型:** `int`
-
----
-
-### 📌 `is_running`
-
-此属性返回是否有线程还在运行。
-
-**类型:** `bool`
-
----
-
-### 📌 `missions`
-
-此属性返回所有任务对象。
-
-**类型:** `bool`
-
----
-
-### 📌 `waiting_list`
-
-此属性返回返回等待执行的任务队列。
-
-**类型:** `List[Mission]`
-
----
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/usage/add_missions.md b/docs/usage/add_missions.md
deleted file mode 100644
index b8ae6a6dffe920024b0ea9569d2738788898cb72..0000000000000000000000000000000000000000
--- a/docs/usage/add_missions.md
+++ /dev/null
@@ -1,180 +0,0 @@
-本节介绍如何添加下载任务。
-
-## ✅️️ 创建任务
-
-### 📌 单线程任务
-
-使用`download()`方法,可创建单线程阻塞式任务。
-
-即使遇到大文件,`download()`也只有一个线程执行下载,不会分块。
-
-该方法会在文件下载完成后才让程序继续往下运行。
-
-`download()`返回任务结果和信息组成的`tuple`,第一位是任务结果,第二位是任务信息。
-
-如果下载成功,任务信息返回文件路径,如果失败,返回失败原因。
-
-任务结果有以下几种:
-
-- `'success'`:下载成功
-- `'skipped'`:已跳过
-- `'canceled'`:被取消
-- `False`:任务失败
-
-**示例:**
-
-```python
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url = 'https://gitee.com/static/images/logo-black.svg'
-
-d.download(url)
-```
-
----
-
-### 📌 多线程并发任务
-
-使用`add()`方法,可添加并发任务。
-
-`add()`方法返回`Mission`对象,可以用于任务管理,在任务管理章节介绍。
-
-**示例:**
-
-```python
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url1 = 'https://gitee.com/static/images/logo-black.svg'
-url2 = 'https://gitee.com/static/images/logo-black.svg'
-
-m1 = d.add(url1)
-m2 = d.add(url2)
-```
-
----
-
-### 📌 多线程阻塞式任务
-
-如果想使用多线程下载大文件,且需要在这个文件下载完再执行后面的语句,可以在`add()`后面使用`wait()`方法,可创建单线程阻塞式任务。
-
-`wait()`方法有`show_msg`参数,可指定是否打印下载进度。
-
-**示例:**
-
-```python
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url = 'https://gitee.com/static/images/logo-black.svg'
-
-d.add(url).wait(show_msg=False)
-```
-
----
-
-### 📌 大文件分块并行下载
-
-除了多个任务并行执行,单个文件也可以分为多个子任务分块同时下载。
-
-`add()`方法的`split`参数可以设置是否启用分块下载,默认为`True`。
-
-除了`split`参数,还需符合两个条件,分块下载才会执行:
-
-- 服务器支持分块下载
-
-- 目标文件大小小于设定的分块大小
-
-分块大小默认为 50MB,可用`set.block_size()`设置。
-
-**示例:**
-
-```python
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-d.set.block_size('30m')
-url = 'https://dldir1.qq.com/qqfile/qq/TIM3.4.8/TIM3.4.8.22086.exe'
-
-d.add(url) # 默认启用分块下载
-d.add(url, split=False) # 禁用分块下载
-```
-
----
-
-### 📌 post 方式
-
-当`download()`或`add()`存在`data`或`json`参数时,会使用 post 方式进行连接。
-
-不存在这两个参数时,用 get 方式连接。
-
-**示例:**
-
-```pyton
-data = {'abc': 123}
-d.download(url, data=data) # 自动采用post方式
-```
-
----
-
-## ✅️️ 任务参数
-
-`download()`和`add()`方法参数基本一致,有微小差别。
-
-### 📌 `download()`
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`file_url`|`str`|必填|文件网址|
-|`goal_path`|`str`
`Path`|`None`|保存路径,为`None`时保存到当前文件夹|
-|`rename`|`str`|`None`|指定文件另存的名称,可不带后缀,程序会自动补充|
-|`file_exists`|`str`|`None`|遇到同名文件时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'`,默认跟随实例属性|
-|`show_msg`|`bool`|`True`|是否打印下载信息和进度|
-|`**kwargs`|`Any`|无|requests 的连接参数|
-
----
-
-### 📌 `add()`
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`file_url`|`str`|必填|文件网址|
-|`goal_path`|`str`
`Path`|`None`|保存路径,为`None`时保存到当前文件夹|
-|`rename`|``str`|`None`|指定文件另存的名称,可不带后缀,程序会自动补充|
-|`file_exists`|`str`|`None`|遇到同名文件时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'`,默认跟随实例属性|
-|`split`|`bool`|`None`|是否启用多线程分块下载,默认跟随实例属性|
-|`**kwargs`|`Any`|无|requests 的连接参数|
-
----
-
-### 📌 连接参数
-
-连接参数即`**kwargs`允许接收到参数,与 requests 的`get()`方法一致。
-
-|参数名称|类型|说明|
-|:---:|:---:|---|
-|`timeout`|`float`|连接超时时间|
-|`params`|`dict`|查询参数字典|
-|`headers`|`dict`|headers|
-|`cookies`|`Any`|cookies|
-|`data`|`Any`|data 数据|
-|`json`|`Any`|json 数据|
-|`files`|`Any`|文件数据|
-|`auth`|`Tuple[str, str]`
`HTTPBasicAuth`|认证元组或对象|
-|`allow_redirects`|`bool`|是否允许自动跳转|
-|`proxies`|`dict`|代理 ip|
-|`hooks`|`dict`|回调方法|
-|`verify`|`bool`|是否验证SSL证书|
-|`cert`|`str`
`Tuple[str, str]`|SSL客户端证书|
-
-
-**示例:**
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-h = {'referer': 'demourl.com'}
-d.download(url, headers=h)
-```
\ No newline at end of file
diff --git a/docs/usage/create_object.md b/docs/usage/create_object.md
deleted file mode 100644
index 5167a757b9e704da811830c9fa93e29af927ef38..0000000000000000000000000000000000000000
--- a/docs/usage/create_object.md
+++ /dev/null
@@ -1,60 +0,0 @@
-## ✅️️ 创建`DownloadKit`对象
-
-创建`DownloadKit`对象时,`driver`参数可传入一个用于携带登录信息的对象,可以是多种类型。
-
-当传入的是`DrissionPage`的页面对象时,还可以根据页面访问的 url 自动设置`referer`参数。
-
-| 初始化参数 | 类型 | 默认值 | 说明 |
-|:-------------:|:--------------------------------------------------------------------------------------------------------------:|:----------:|-------------------------------------------------------------|
-| `goal_path` | `str`
`Path` | `None` | 文件保存路径 |
-| `roads` | `int` | `10` | 可同时运行的线程数 |
-| `driver` | `Session`
`SessionOptions`
`ChromiumPage`
`SessionPage`
`ChromiumTab`
`WebPage`
`WebPageTab` | `None` | 用于提供下载连接信息的页面或链接对象 |
-| `file_exists` | `str` | `'renmae'` | 有同名文件名时的处理方式,可选`'skip'`, `'overwrite'`, `'rename'`, `'add'` |
-
----
-
-## ✅️️ 示例
-
-### 📌 直接创建
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-```
-
----
-
-### 📌 接收`Session`对象
-
-```python
-from requests import Session
-from DownloadKit import DownloadKit
-
-session = Session()
-d = DownloadKit(session=session)
-```
-
----
-
-### 📌 接收`SessionOptions`对象
-
-```python
-from DrissionPage import SessionOptions
-from DownloadKit import DownloadKit
-
-so = SessionOptions()
-d = DownloadKit(session=so)
-```
-
----
-
-### 📌 接收页面对象
-
-```python
-from DrissionPage import ChromiumPage
-from DownloadKit import DownloadKit
-
-p = ChromiumPage()
-d = DownloadKit(session=p)
-```
\ No newline at end of file
diff --git a/docs/usage/misssions.md b/docs/usage/misssions.md
deleted file mode 100644
index bfa00ca02e6ad631d8a1363f81a468593c7acfc4..0000000000000000000000000000000000000000
--- a/docs/usage/misssions.md
+++ /dev/null
@@ -1,276 +0,0 @@
-本节介绍下载任务的管理。
-
-`add()`方法会返回一个`Mission`对象,该对象可用于查看任务信息和管理任务。
-
-## ✅️️ 任务进度
-
-### 📌 `rate`
-
-该属性返回任务完成的百分比。
-
-**类型:**`float`
-
-**示例:**
-
-```python
-d = DownloadKit()
-m = d.add(url)
-
-print(m.rate)
-```
-
----
-
-### 📌 等待单个任务结束
-
-`Mission`对象的`wait()`方法可等待该任务结束。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`show`|`bool`|`True`|是否打印下载信息|
-|`timeout`|`float`|`0`|超时时间,`0`表示不限时|
-
-|返回类型|说明|
-|`tuple`|任务结果和信息组成的`tuple`,格式:(任务结果, 任务信息)|
-
-**示例:**
-
-```python
-d = DownloadKit()
-m = d.add(url)
-
-m.wait()
-```
-
----
-
-### 📌 等待所有任务结束
-
-`DownloadKit`对象的`wait()`方法,可等待所有任务结束。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`mission`|`Mission`
`int`|`None`|任务对象或任务 id,为`None`时等待所有任务结束|
-|`show`|`bool`|`False`|是否显示进度|
-|`timeout`|`float`
`None`|`None`|超时时间,`None`或`0`不限时|
-
-**示例:**
-
-```python
-d = DownloadKit()
-d.add(url1)
-d.add(url2)
-
-d.wait()
-```
-
----
-
-### 📌 取消任务
-
-`cancel()`用于中途取消任务。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 删除已下载文件
-
-`del_file()`用于删除任务已下载的文件。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-## ✅️️ 任务信息
-
-### 📌 任务状态
-
-`state`属性返回任务状态,有以下三种:
-
-- `'waiting'`:等待开始
-- `'running'`:运行中
-- `'done'`:已结束
-
-任务状态不能看出任务是否成功,只能显示任务是否在运行。
-
----
-
-### 📌 任务结果
-
-`result`属性返回任务结果,有以下几种:
-
-- `'success'`:下载成功
-- `'skipped'`:跳过,存在同名文件,且设置为跳过时
-- `'canceled'`:被取消
-- `False`:任务失败
-- `None`:未知,任务还没结束
-
----
-
-### 📌 任务信息
-
-`info`属性返回任务信息,在任务不同阶段,会返回不同信息。
-
-`info`是对当前状态的文字解释,如任务失败时,会返回失败原因,成功时会返回文件保存路径。
-
----
-
-## ✅️️ 获取任务对象
-
-### 📌 获取所有任务对象
-
-`DownloadKit`对象的`missions`属性以`liist`方式返回所有任务对象。
-
-**示例:**
-
-```python
-d = DownloadKit()
-d.add(url)
-print(d.missions)
-```
-
----
-
-### 📌 查找任务
-
-`DownloadKit`对象的`get_mission()`方法可根据任务 id 获取任务对象。
-
-|参数名称|类型|默认值|说明|
-|:---:|:---:|:---:|---|
-|`mission_or_id`|`Mission`
`int`|必填|任务或任务 id|
-
-|返回类型|说明|
-|:---:|---|
-|`Mission`|任务对象|
-|`None`|没有找到该任务|
-
----
-
-### 📌 获取失败的任务
-
-`DownloadKit`对象的`get_failed_missions()`方法可以`list`方式返回失败的任务。
-
-**参数:** 无
-
-|返回类型|说明|
-|:---:|---|
-|`List[Mission]`|任务对象组成的列表|
-
----
-
-## ✅️️ `Mission`对象的属性
-
-### 📌 `id`
-
-此属性返回任务 id。
-
-**类型:**`int`
-
----
-
-### 📌 `data`
-
-此属性返回任务使用的数据,即创建任务时输入的参数。
-
-**类型:**`MissionData`
-
----
-
-### 📌 `state`
-
-此属性返回任务状态,有三种:`'waiting'`、`'running'`、`'done'`。
-
-**类型:**`str`
-
----
-
-### 📌 `result`
-
-此属性返回任务结果,有以下几种:`'success'`、`'skipped'`、`'canceled'`、`False`、`None`
-
-**类型:**`str`
-
----
-
-### 📌 `info`
-
-此属性返回任务描述信息。
-
-**类型:**`str`
-
----
-
-### 📌 `is_done`
-
-此属性返回任务是否已完成。
-
-**类型:**`bool`
-
----
-
-### 📌 `size`
-
-此属性返回文件大小。
-
-**类型:**`int`或`None`
-
----
-
-### 📌 `tasks`
-
-此属性以`list`方式返回所有子任务
-
-**类型:**`List[Task]`
-
----
-
-### 📌 `tasks_count`
-
-此属性返回子任务数量。
-
-**类型:**`int`
-
----
-
-### 📌 `done_tasks_count`
-
-此属性返回已完成的子任务数量。
-
-**类型:**`int`
-
----
-
-### 📌 `file_name`
-
-此属性返回文件名。
-
-**类型:**`str`或`None`
-
----
-
-### 📌 `method`
-
-此属性返回连接方式,`'get'`或`'post'`。
-
-**类型:**`str`
-
----
-
-### 📌 `path`
-
-此属性返回文件保存路径。
-
-**类型:**`str`
-
----
-
-### 📌 `rate`
-
-此属性以百分比方式返回下载进度。
-
-**类型:**`float`
diff --git a/docs/usage/settings.md b/docs/usage/settings.md
deleted file mode 100644
index 0a464a4470cd1e8f0584f18148b8eda1ecf39ed6..0000000000000000000000000000000000000000
--- a/docs/usage/settings.md
+++ /dev/null
@@ -1,265 +0,0 @@
-本节介绍`DownloadKit`对象相关设置。
-
-## ✅️️ 使用方法
-
-### 📌 全局设置
-
-使用`DownloadKit`对象的`set.xxxx()`方法,可对各种允许参数进行设置。
-
-这种方法设置的参数时全局有效的,之后新建的任务会默认使用。
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.block_size('10m') # 设置分块大小
-```
-
----
-
-### 📌 每个任务独立设置
-
-每次新建任务时,可设置当前项目有效的设置,覆盖全局设置。
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.goal_path('tmp1') # 设置全局保存路径
-
-d.add(url, goal_path='tmp2') # 创建任务时指定保存路径
-```
-
----
-
-## ✅️️ 运行设置
-
-### 📌 `set.driver()`
-
-此方法用于设置提供下载连接信息的页面或链接对象。
-
-支持 DrissionPage 所有页面对象、`Session`对象、`SessionOptions`对象。
-
-程序可从传入的对象中自动获取登录信息,如传入页面对象,还能自动设置`Referer`参数。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:--------:|:--------------------------------------------------------------------------------------------------------------:|:---:|-------------|
-| `driver` | `Session`
`SessionOptions`
`ChromiumPage`
`SessionPage`
`ChromiumTab`
`WebPage`
`WebPageTab` | 必填 | 用于提供连接信息的对象 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.goal_path()`
-
-此方法用于设置文件保存路径。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:-----------:|:---------------:|:---:|--------|
-| `goal_path` | `str`
`Path` | 必填 | 文件保存路径 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.if_file_exists()`
-
-此方法用于设置路径存在同名文件时的处理方式。
-
-可选`'skip'`, `'rename'`, `'overwrite'`, `'add'`。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:------:|:-----:|:---:|---------|
-| `mode` | `str` | 必填 | 处理方式字符串 |
-
-- `skip`:跳过,不下载
-- `overwrite`:覆盖原有文件
-- `rename`:以在后面添加序号的方式给新文件重命名
-- `add`:在原有文件末尾追加内容
-
-**返回:**`None`
-
----
-
-### 📌 `set.if_file_exists.xxxx()`
-
-这几个方法用于设置路径存在同名文件时的处理方式。
-
-效果与`set.if_file_exists()`一致。
-
-- `skip()`:跳过,不下载
-- `overwrite()`:覆盖原有文件
-- `rename()`:以在后面添加序号的方式给新文件重命名
-- `add()`:在原有文件末尾追加内容
-
-**示例:**
-
-```python
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.if_file_exists.skip()
-```
-
----
-
-### 📌 `set.roads()`
-
-此方法用于设置可同时运行的线程数。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:-----:|:-----:|:---:|------|
-| `num` | `int` | 必填 | 线程数量 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.retry()`
-
-此方法用于设置连接失败时重试次数。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:-------:|:-----:|:---:|------|
-| `times` | `int` | 必填 | 重试次数 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.interval()`
-
-此方法用于设置连接失败时重试间隔。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:---------:|:-------:|:---:|--------------|
-| `seconds` | `float` | 必填 | 连接失败时重试间隔(秒) |
-
-**返回:**`None`
-
----
-
-### 📌 `set.timeout()`
-
-此方法用于设置连接超时时间。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:---------:|:-------:|:---:|---------|
-| `seconds` | `float` | 必填 | 超时时间(秒) |
-
-**返回:**`None`
-
----
-
-### 📌 `set.split()`
-
-此方法用于设置大文件是否分块下载。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:--------:|:------:|:---:|------------|
-| `on_off` | `bool` | 必填 | `bool`代表开关 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.block_size()`
-
-此方法用于设置设置分块大小。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:------:|:--------------:|:---:|---------------------------------|
-| `size` | `str`
`int` | 必填 | 可接收`int`和`str`形式,接收`int`时以字节为单位;接收`str`时格式有:`'10b'`、`'10k'`、`'10m'`、`'10g'`四种,不区分大小写 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.proxies()`
-
-此方法用于设置代理地址及端口,例:'127.0.0.1:1080'。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:-------:|:-----:|:------:|---------------|
-| `http` | `str` | `None` | http 代理地址及端口 |
-| `https` | `str` | `None` | https 代理地址及端口 |
-
-**返回:**`None`
-
----
-
-## ✅️️ 日志设置
-
-日志设置方法在`set.log`属性中。
-
-### 📌 `set.log.path()`
-
-此方法用于设置日志文件路径。
-
-| 参数名称 | 类型 | 默认值 | 说明 |
-|:------:|:---------------:|:---:|------|
-| `path` | `str`
`Path` | 必填 | 文件路径 |
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.print_all()`
-
-此方法用于设置打印所有任务信息。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.print_failed()`
-
-此方法用于设置打印失败的任务。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.print_nothing()`
-
-此方法用于设置不打印任何信息。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.log_all()`
-
-此方法用于记录打印所有任务信息到文件。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.log_failed()`
-
-此方法用于设置记录失败的任务到文件。
-
-**参数:** 无
-
-**返回:**`None`
-
----
-
-### 📌 `set.log.log_nothing()`
-
-此方法用于设置不记录任何信息到文件。
-
-**参数:** 无
-
-**返回:**`None`
-
----
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
deleted file mode 100644
index 16b0d317ff9850c8f68e1e460fb4cf79ba30a03d..0000000000000000000000000000000000000000
--- a/mkdocs.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-site_name: DownloadKit
-site_url: http://g1879.gitee.io/DownloadKit/
-site_author: g1879
-site_description: DownloadKit是一个简洁易用的多线程文件下载工具,支持多线程,功能丰富使用简单。
-repo_url: https://gitee.com/g1879/DownloadKit
-markdown_extensions:
- - admonition # 提示块
-
- - pymdownx.details
- - pymdownx.superfences
- - pymdownx.highlight:
- anchor_linenums: true
- - pymdownx.inlinehilite
- - pymdownx.snippets
- - pymdownx.superfences
- - def_list
-
- - pymdownx.tasklist: # 待办列表
- custom_checkbox: true
-
- - tables
-
-theme:
- name: material
- font:
- code: Roboto Mono
- icon:
- admonition:
- note: octicons/tag-16
- abstract: octicons/checklist-16
- info: octicons/info-16
- tip: octicons/squirrel-16
- success: octicons/check-16
- question: octicons/question-16
- warning: octicons/alert-16
- failure: octicons/x-circle-16
- danger: octicons/zap-16
- bug: octicons/bug-16
- example: octicons/beaker-16
- quote: octicons/quote-16
-
- palette:
- - scheme: default
- primary: brown
- toggle:
- icon: material/brightness-7
- name: Switch to dark mode
-
- # Palette toggle for dark mode
- - scheme: slate
- primary: brown
- toggle:
- icon: material/brightness-4
- name: Switch to light mode
-
- features:
- - navigation.top # 返回顶部按钮
- - navigation.tracking
- - toc.follow
- - content.code.copy # 代码复制按钮
- - navigation.tabs # 使用标签页
- - navigation.tabs.sticky # 标签页不消失
- - header.autohide # 自动隐藏标题栏
- - navigation.footer # 上一页和下一页
-
-nav:
- - 欢迎: index.md
-
- - 安装和导入: install_and_import.md
-
- - 使用方法:
- - 🐘 创建对象: usage/create_object.md
- - 🐎 添加任务: usage/add_missions.md
- - 🐒 任务管理: usage/misssions.md
- - 🦍 运行设置: usage/settings.md
- - 🐇 APIs: usage/APIs.md
-
- - 版本历史: history.md
-
- - 意见建议: https://gitee.com/g1879/DownloadKit/issues
diff --git a/setup.py b/setup.py
index 794c809d32d6bb0cd51d8c32c4b5744b48e99556..639af0d0750fcecef822856fa84fad66cc9651d5 100644
--- a/setup.py
+++ b/setup.py
@@ -6,7 +6,7 @@ with open("README.md", "r", encoding='utf-8') as fh:
setup(
name="DownloadKit",
- version="1.0.2",
+ version="1.0.3",
author="g1879",
author_email="g1879@qq.com",
description="一个简洁易用的多线程文件下载工具。",
diff --git a/site/404.html b/site/404.html
deleted file mode 100644
index 9b36032cefe13cf109bd882041bd860e0eb9a955..0000000000000000000000000000000000000000
--- a/site/404.html
+++ /dev/null
@@ -1,582 +0,0 @@
-
-
-
-
DrissionPage v3.2.31 版set_xxxx()改为set.xxxx()形式__init__()方法的session用driver代替,但保留向后兼容Task增加下载进度属性add模式DrissionPage v3.2.0 版missions属性DrissionPage v3.1.0 版split全局 设置DrissionPage v3.0 版set_log()、set_print()和set_proxies()ByteRecorder保存数据MissionData类MissionData类add()方法删除session参数__init__()方法删除timeout参数timeout、retry、interval属性逻辑referer参数可从传入的页面对象获取DownloadKit 是一个基于 python 的简洁易用的多线程文件下载工具。 -使用简单,功能强大。
-当前版本:v1.0.2
-Session对象,便于保持登录状态from DownloadKit import DownloadKit
-
-# 创建下载器对象
-d = DownloadKit(r'.\files')
-
-# 添加多个任务
-url1 = 'https://gitee.com/static/images/logo.svg?t=158106664'
-url2 = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
-
-d.download(url1)
-d.download(url2)
-如果本项目对您有所帮助,不妨请作者我喝杯咖啡 :)
-
DownloadKit \u662f\u4e00\u4e2a\u57fa\u4e8e python \u7684\u7b80\u6d01\u6613\u7528\u7684\u591a\u7ebf\u7a0b\u6587\u4ef6\u4e0b\u8f7d\u5de5\u5177\u3002 \u4f7f\u7528\u7b80\u5355\uff0c\u529f\u80fd\u5f3a\u5927\u3002
\u5f53\u524d\u7248\u672c\uff1av1.0.2
"},{"location":"#_2","title":"\ud83d\udc96 \u7279\u6027","text":"Session\u5bf9\u8c61\uff0c\u4fbf\u4e8e\u4fdd\u6301\u767b\u5f55\u72b6\u6001from DownloadKit import DownloadKit\n# \u521b\u5efa\u4e0b\u8f7d\u5668\u5bf9\u8c61\nd = DownloadKit(r'.\\files')\n# \u6dfb\u52a0\u591a\u4e2a\u4efb\u52a1\nurl1 = 'https://gitee.com/static/images/logo.svg?t=158106664'\nurl2 = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'\nd.download(url1)\nd.download(url2)\n"},{"location":"#_4","title":"\u2615 \u8bf7\u6211\u559d\u5496\u5561","text":"\u5982\u679c\u672c\u9879\u76ee\u5bf9\u60a8\u6709\u6240\u5e2e\u52a9\uff0c\u4e0d\u59a8\u8bf7\u4f5c\u8005\u6211\u559d\u676f\u5496\u5561 \uff1a\uff09
"},{"location":"history/","title":"\u7248\u672c\u5386\u53f2","text":""},{"location":"history/#v102","title":"v1.0.2","text":"DrissionPage v3.2.31 \u7248set_xxxx()\u6539\u4e3aset.xxxx()\u5f62\u5f0f__init__()\u65b9\u6cd5\u7684session\u7528driver\u4ee3\u66ff\uff0c\u4f46\u4fdd\u7559\u5411\u540e\u517c\u5bb9Task\u589e\u52a0\u4e0b\u8f7d\u8fdb\u5ea6\u5c5e\u6027add\u6a21\u5f0fDrissionPage v3.2.0 \u7248missions\u5c5e\u6027DrissionPage v3.1.0 \u7248split\u5168\u5c40 \u8bbe\u7f6eDrissionPage v3.0 \u7248set_log()\u3001set_print()\u548cset_proxies()ByteRecorder\u4fdd\u5b58\u6570\u636eMissionData\u7c7bMissionData\u7c7badd()\u65b9\u6cd5\u5220\u9664session\u53c2\u6570__init__()\u65b9\u6cd5\u5220\u9664timeout\u53c2\u6570timeout\u3001retry\u3001interval\u5c5e\u6027\u903b\u8f91referer\u53c2\u6570\u53ef\u4ece\u4f20\u5165\u7684\u9875\u9762\u5bf9\u8c61\u83b7\u53d6\u5982\u679c\u60a8\u5b89\u88c5\u8fc7 DrissionPage\uff0c\u672c\u5e93\u5df2\u81ea\u52a8\u5b89\u88c5\u3002
pip install DownloadKit\n"},{"location":"install_and_import/#_2","title":"\ud83c\udfab \u5bfc\u5165","text":"from DownloadKit import DownloadKit\n"},{"location":"usage/APIs/","title":"\ud83d\udc07 APIs","text":""},{"location":"usage/APIs/#downloadkit","title":"\u2705\ufe0f\ufe0f DownloadKit\u5bf9\u8c61\u65b9\u6cd5","text":""},{"location":"usage/APIs/#download","title":"\ud83d\udccc download()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u5355\u7ebf\u7a0b\u963b\u585e\u5f0f\u4e0b\u8f7d\u4e00\u4e2a\u6587\u4ef6\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660efile_url str \u5fc5\u586b \u6587\u4ef6\u7f51\u5740 goal_path strPath None \u4fdd\u5b58\u8def\u5f84\uff0c\u4e3aNone\u65f6\u4fdd\u5b58\u5230\u5f53\u524d\u6587\u4ef6\u5939 rename str None \u6307\u5b9a\u6587\u4ef6\u53e6\u5b58\u7684\u540d\u79f0\uff0c\u53ef\u4e0d\u5e26\u540e\u7f00\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u8865\u5145 file_exists str None \u9047\u5230\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u53ef\u9009'skip', 'overwrite', 'rename', 'add'\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 show_msg bool True \u662f\u5426\u6253\u5370\u4e0b\u8f7d\u4fe1\u606f\u548c\u8fdb\u5ea6 **kwargs Any \u65e0 requests \u7684\u8fde\u63a5\u53c2\u6570 \u8fde\u63a5\u53c2\u6570**kwargs\u4e0e requests \u7684get()\u65b9\u6cd5\u4e00\u81f4\u3002
timeout float \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4 params dict \u67e5\u8be2\u53c2\u6570\u5b57\u5178 headers dict headers cookies Any cookies data Any data \u6570\u636e json Any json \u6570\u636e files Any \u6587\u4ef6\u6570\u636e auth Tuple[str, str]HTTPBasicAuth \u8ba4\u8bc1\u5143\u7ec4\u6216\u5bf9\u8c61 allow_redirects bool \u662f\u5426\u5141\u8bb8\u81ea\u52a8\u8df3\u8f6c proxies dict \u4ee3\u7406 ip hooks dict \u56de\u8c03\u65b9\u6cd5 verify bool \u662f\u5426\u9a8c\u8bc1SSL\u8bc1\u4e66 cert strTuple[str, str] SSL\u5ba2\u6237\u7aef\u8bc1\u4e66 \u8fd4\u56de\u7c7b\u578b \u8bf4\u660e tuple \u683c\u5f0f\uff1a(\u4efb\u52a1\u7ed3\u679c, \u4efb\u52a1\u4fe1\u606f) \u4efb\u52a1\u7ed3\u679c\u6709\u5982\u4e0b\u51e0\u79cd\uff1a
'success'\uff1a\u4e0b\u8f7d\u6210\u529f'skipped'\uff1a\u5df2\u8df3\u8fc7'canceled'\uff1a\u88ab\u53d6\u6d88False\uff1a\u4efb\u52a1\u5931\u8d25\u5982\u679c\u4e0b\u8f7d\u6210\u529f\uff0c\u4efb\u52a1\u4fe1\u606f\u8fd4\u56de\u6587\u4ef6\u8def\u5f84\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56de\u5931\u8d25\u539f\u56e0\u3002
"},{"location":"usage/APIs/#add","title":"\ud83d\udcccadd()","text":"\u6b64\u65b9\u6cd5\u6dfb\u52a0\u4e00\u4e2a\u5e76\u53d1\u4efb\u52a1\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660efile_url str \u5fc5\u586b \u6587\u4ef6\u7f51\u5740 goal_path strPath None \u4fdd\u5b58\u8def\u5f84\uff0c\u4e3aNone\u65f6\u4fdd\u5b58\u5230\u5f53\u524d\u6587\u4ef6\u5939 rename `str|None \u6307\u5b9a\u6587\u4ef6\u53e6\u5b58\u7684\u540d\u79f0\uff0c\u53ef\u4e0d\u5e26\u540e\u7f00\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u8865\u5145 file_exists str None \u9047\u5230\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u53ef\u9009'skip', 'overwrite', 'rename', 'add'\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 split bool None \u5f53\u524d\u4efb\u52a1\u662f\u5426\u542f\u7528\u591a\u7ebf\u7a0b\u5206\u5757\u4e0b\u8f7d\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 **kwargs Any \u65e0 requests \u7684\u8fde\u63a5\u53c2\u6570 **kwargs\u53c2\u6570\u4e0edownload()\u4e00\u81f4\uff0c\u89c1\u4e0a\u6587\u3002
Mission \u4efb\u52a1\u5bf9\u8c61\uff0c\u53ef\u7528\u4e8e\u89c2\u5bdf\u4efb\u52a1\u72b6\u6001\u3001\u53d6\u6d88\u4efb\u52a1"},{"location":"usage/APIs/#wait","title":"\ud83d\udccc wait()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u7b49\u5f85\u6240\u6709\u6216\u6307\u5b9a\u4efb\u52a1\u5b8c\u6210\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660emission Missionint None \u4efb\u52a1\u5bf9\u8c61\u6216\u4efb\u52a1 id\uff0c\u4e3aNone\u65f6\u7b49\u5f85\u6240\u6709\u4efb\u52a1\u7ed3\u675f show bool False \u662f\u5426\u663e\u793a\u8fdb\u5ea6 timeout floatNone None \u8d85\u65f6\u65f6\u95f4\uff0cNone\u62160\u4e0d\u9650\u65f6"},{"location":"usage/APIs/#cancel","title":"\ud83d\udccc cancel()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u53d6\u6d88\u6240\u6709\u7b49\u5f85\u4e2d\u6216\u6267\u884c\u4e2d\u7684\u4efb\u52a1\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
get_mission()","text":"\u6b64\u65b9\u6cd5\u6839\u636eid\u503c\u83b7\u53d6\u4e00\u4e2a\u4efb\u52a1\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660emission_or_id Missionint \u5fc5\u586b \u4efb\u52a1\u6216\u4efb\u52a1 id \u8fd4\u56de\u7c7b\u578b \u8bf4\u660e Mission \u4efb\u52a1\u5bf9\u8c61 None \u6ca1\u6709\u627e\u5230\u8be5\u4efb\u52a1"},{"location":"usage/APIs/#get_failed_missions","title":"\ud83d\udccc get_failed_missions()","text":"\u6b64\u65b9\u6cd5\u8fd4\u56de\u5931\u8d25\u4efb\u52a1\u5217\u8868\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\u7c7b\u578b \u8bf4\u660eList[Mission] \u4efb\u52a1\u5bf9\u8c61\u7ec4\u6210\u7684\u5217\u8868"},{"location":"usage/APIs/#downloadkit_1","title":"\u2705\ufe0f\ufe0fDownloadKit\u5c5e\u6027","text":""},{"location":"usage/APIs/#goal_path","title":"\ud83d\udccc goal_path","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u6587\u4ef6\u9ed8\u8ba4\u4fdd\u5b58\u6587\u4ef6\u5939\u8def\u5f84\uff0c\u9ed8\u8ba4\u7a0b\u5e8f\u5f53\u524d\u8def\u5f84\u3002
\u7c7b\u578b\uff1a str
file_exists","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u9047\u5230\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a'skip', 'overwrite', 'rename', 'add'\u3002
\u9ed8\u8ba4'rename'\u3002
\u7c7b\u578b\uff1a str
split","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u5927\u6587\u4ef6\u662f\u5426\u5206\u5757\u4e0b\u8f7d\uff0c\u9ed8\u8ba4True\u3002
\u7c7b\u578b\uff1a bool
set","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u7528\u4e8e\u8bbe\u7f6eDownloadKit\u5bf9\u8c61\u7684\u8bbe\u7f6e\u5bf9\u8c61\u3002
\u7c7b\u578b\uff1a Setter
timeout","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba4 20 \u79d2\uff0c\u5982\u679c\u9a71\u52a8\u662fDrissionPage\u7684\u9875\u9762\u5bf9\u8c61\uff0c\u4f7f\u7528\u9875\u9762\u5bf9\u8c61\u7684timeout\u5c5e\u6027\u3002
\u7c7b\u578b\uff1a float
retry","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u8fde\u63a5\u5931\u8d25\u65f6\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba43\u3002
\u7c7b\u578b\uff1a int
interval","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u8fde\u63a5\u5931\u8d25\u65f6\u91cd\u8bd5\u95f4\u9694\uff0c\u9ed8\u8ba4 5 \u6b21\u3002
\u7c7b\u578b\uff1a int
is_running","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u662f\u5426\u6709\u7ebf\u7a0b\u8fd8\u5728\u8fd0\u884c\u3002
\u7c7b\u578b\uff1a bool
missions","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u6240\u6709\u4efb\u52a1\u5bf9\u8c61\u3002
\u7c7b\u578b\uff1a bool
waiting_list","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u8fd4\u56de\u7b49\u5f85\u6267\u884c\u7684\u4efb\u52a1\u961f\u5217\u3002
\u7c7b\u578b\uff1a List[Mission]
\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u6dfb\u52a0\u4e0b\u8f7d\u4efb\u52a1\u3002
"},{"location":"usage/add_missions/#_1","title":"\u2705\ufe0f\ufe0f \u521b\u5efa\u4efb\u52a1","text":""},{"location":"usage/add_missions/#_2","title":"\ud83d\udccc \u5355\u7ebf\u7a0b\u4efb\u52a1","text":"\u4f7f\u7528download()\u65b9\u6cd5\uff0c\u53ef\u521b\u5efa\u5355\u7ebf\u7a0b\u963b\u585e\u5f0f\u4efb\u52a1\u3002
\u5373\u4f7f\u9047\u5230\u5927\u6587\u4ef6\uff0cdownload()\u4e5f\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u6267\u884c\u4e0b\u8f7d\uff0c\u4e0d\u4f1a\u5206\u5757\u3002
\u8be5\u65b9\u6cd5\u4f1a\u5728\u6587\u4ef6\u4e0b\u8f7d\u5b8c\u6210\u540e\u624d\u8ba9\u7a0b\u5e8f\u7ee7\u7eed\u5f80\u4e0b\u8fd0\u884c\u3002
download()\u8fd4\u56de\u4efb\u52a1\u7ed3\u679c\u548c\u4fe1\u606f\u7ec4\u6210\u7684tuple\uff0c\u7b2c\u4e00\u4f4d\u662f\u4efb\u52a1\u7ed3\u679c\uff0c\u7b2c\u4e8c\u4f4d\u662f\u4efb\u52a1\u4fe1\u606f\u3002
\u5982\u679c\u4e0b\u8f7d\u6210\u529f\uff0c\u4efb\u52a1\u4fe1\u606f\u8fd4\u56de\u6587\u4ef6\u8def\u5f84\uff0c\u5982\u679c\u5931\u8d25\uff0c\u8fd4\u56de\u5931\u8d25\u539f\u56e0\u3002
\u4efb\u52a1\u7ed3\u679c\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a
'success'\uff1a\u4e0b\u8f7d\u6210\u529f'skipped'\uff1a\u5df2\u8df3\u8fc7'canceled'\uff1a\u88ab\u53d6\u6d88False\uff1a\u4efb\u52a1\u5931\u8d25\u793a\u4f8b\uff1a
from DownloadKit import DowwnloadKit\nd = DownloadKit()\nurl = 'https://gitee.com/static/images/logo-black.svg'\nd.download(url)\n"},{"location":"usage/add_missions/#_3","title":"\ud83d\udccc \u591a\u7ebf\u7a0b\u5e76\u53d1\u4efb\u52a1","text":"\u4f7f\u7528add()\u65b9\u6cd5\uff0c\u53ef\u6dfb\u52a0\u5e76\u53d1\u4efb\u52a1\u3002
add()\u65b9\u6cd5\u8fd4\u56deMission\u5bf9\u8c61\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u52a1\u7ba1\u7406\uff0c\u5728\u4efb\u52a1\u7ba1\u7406\u7ae0\u8282\u4ecb\u7ecd\u3002
\u793a\u4f8b\uff1a
from DownloadKit import DowwnloadKit\nd = DownloadKit()\nurl1 = 'https://gitee.com/static/images/logo-black.svg'\nurl2 = 'https://gitee.com/static/images/logo-black.svg'\nm1 = d.add(url1)\nm2 = d.add(url2)\n"},{"location":"usage/add_missions/#_4","title":"\ud83d\udccc \u591a\u7ebf\u7a0b\u963b\u585e\u5f0f\u4efb\u52a1","text":"\u5982\u679c\u60f3\u4f7f\u7528\u591a\u7ebf\u7a0b\u4e0b\u8f7d\u5927\u6587\u4ef6\uff0c\u4e14\u9700\u8981\u5728\u8fd9\u4e2a\u6587\u4ef6\u4e0b\u8f7d\u5b8c\u518d\u6267\u884c\u540e\u9762\u7684\u8bed\u53e5\uff0c\u53ef\u4ee5\u5728add()\u540e\u9762\u4f7f\u7528wait()\u65b9\u6cd5\uff0c\u53ef\u521b\u5efa\u5355\u7ebf\u7a0b\u963b\u585e\u5f0f\u4efb\u52a1\u3002
wait()\u65b9\u6cd5\u6709show_msg\u53c2\u6570\uff0c\u53ef\u6307\u5b9a\u662f\u5426\u6253\u5370\u4e0b\u8f7d\u8fdb\u5ea6\u3002
\u793a\u4f8b\uff1a
from DownloadKit import DowwnloadKit\nd = DownloadKit()\nurl = 'https://gitee.com/static/images/logo-black.svg'\nd.add(url).wait(show_msg=False)\n"},{"location":"usage/add_missions/#_5","title":"\ud83d\udccc \u5927\u6587\u4ef6\u5206\u5757\u5e76\u884c\u4e0b\u8f7d","text":"\u9664\u4e86\u591a\u4e2a\u4efb\u52a1\u5e76\u884c\u6267\u884c\uff0c\u5355\u4e2a\u6587\u4ef6\u4e5f\u53ef\u4ee5\u5206\u4e3a\u591a\u4e2a\u5b50\u4efb\u52a1\u5206\u5757\u540c\u65f6\u4e0b\u8f7d\u3002
add()\u65b9\u6cd5\u7684split\u53c2\u6570\u53ef\u4ee5\u8bbe\u7f6e\u662f\u5426\u542f\u7528\u5206\u5757\u4e0b\u8f7d\uff0c\u9ed8\u8ba4\u4e3aTrue\u3002
\u9664\u4e86split\u53c2\u6570\uff0c\u8fd8\u9700\u7b26\u5408\u4e24\u4e2a\u6761\u4ef6\uff0c\u5206\u5757\u4e0b\u8f7d\u624d\u4f1a\u6267\u884c\uff1a
\u670d\u52a1\u5668\u652f\u6301\u5206\u5757\u4e0b\u8f7d
\u76ee\u6807\u6587\u4ef6\u5927\u5c0f\u5c0f\u4e8e\u8bbe\u5b9a\u7684\u5206\u5757\u5927\u5c0f
\u5206\u5757\u5927\u5c0f\u9ed8\u8ba4\u4e3a 50MB\uff0c\u53ef\u7528set.block_size()\u8bbe\u7f6e\u3002
\u793a\u4f8b\uff1a
from DownloadKit import DowwnloadKit\nd = DownloadKit()\nd.set.block_size('30m')\nurl = 'https://dldir1.qq.com/qqfile/qq/TIM3.4.8/TIM3.4.8.22086.exe'\nd.add(url) # \u9ed8\u8ba4\u542f\u7528\u5206\u5757\u4e0b\u8f7d\nd.add(url, split=False) # \u7981\u7528\u5206\u5757\u4e0b\u8f7d\n"},{"location":"usage/add_missions/#post","title":"\ud83d\udccc post \u65b9\u5f0f","text":"\u5f53download()\u6216add()\u5b58\u5728data\u6216json\u53c2\u6570\u65f6\uff0c\u4f1a\u4f7f\u7528 post \u65b9\u5f0f\u8fdb\u884c\u8fde\u63a5\u3002
\u4e0d\u5b58\u5728\u8fd9\u4e24\u4e2a\u53c2\u6570\u65f6\uff0c\u7528 get \u65b9\u5f0f\u8fde\u63a5\u3002
\u793a\u4f8b\uff1a
data = {'abc': 123}\nd.download(url, data=data) # \u81ea\u52a8\u91c7\u7528post\u65b9\u5f0f\n"},{"location":"usage/add_missions/#_6","title":"\u2705\ufe0f\ufe0f \u4efb\u52a1\u53c2\u6570","text":"download()\u548cadd()\u65b9\u6cd5\u53c2\u6570\u57fa\u672c\u4e00\u81f4\uff0c\u6709\u5fae\u5c0f\u5dee\u522b\u3002
download()","text":"\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660e file_url str \u5fc5\u586b \u6587\u4ef6\u7f51\u5740 goal_path strPath None \u4fdd\u5b58\u8def\u5f84\uff0c\u4e3aNone\u65f6\u4fdd\u5b58\u5230\u5f53\u524d\u6587\u4ef6\u5939 rename str None \u6307\u5b9a\u6587\u4ef6\u53e6\u5b58\u7684\u540d\u79f0\uff0c\u53ef\u4e0d\u5e26\u540e\u7f00\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u8865\u5145 file_exists str None \u9047\u5230\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u53ef\u9009'skip', 'overwrite', 'rename', 'add'\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 show_msg bool True \u662f\u5426\u6253\u5370\u4e0b\u8f7d\u4fe1\u606f\u548c\u8fdb\u5ea6 **kwargs Any \u65e0 requests \u7684\u8fde\u63a5\u53c2\u6570"},{"location":"usage/add_missions/#add","title":"\ud83d\udccc add()","text":"\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660e file_url str \u5fc5\u586b \u6587\u4ef6\u7f51\u5740 goal_path strPath None \u4fdd\u5b58\u8def\u5f84\uff0c\u4e3aNone\u65f6\u4fdd\u5b58\u5230\u5f53\u524d\u6587\u4ef6\u5939 rename `str|None \u6307\u5b9a\u6587\u4ef6\u53e6\u5b58\u7684\u540d\u79f0\uff0c\u53ef\u4e0d\u5e26\u540e\u7f00\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u8865\u5145 file_exists str None \u9047\u5230\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u53ef\u9009'skip', 'overwrite', 'rename', 'add'\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 split bool None \u662f\u5426\u542f\u7528\u591a\u7ebf\u7a0b\u5206\u5757\u4e0b\u8f7d\uff0c\u9ed8\u8ba4\u8ddf\u968f\u5b9e\u4f8b\u5c5e\u6027 **kwargs Any \u65e0 requests \u7684\u8fde\u63a5\u53c2\u6570"},{"location":"usage/add_missions/#_7","title":"\ud83d\udccc \u8fde\u63a5\u53c2\u6570","text":"\u8fde\u63a5\u53c2\u6570\u5373**kwargs\u5141\u8bb8\u63a5\u6536\u5230\u53c2\u6570\uff0c\u4e0e requests \u7684get()\u65b9\u6cd5\u4e00\u81f4\u3002
timeout float \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4 params dict \u67e5\u8be2\u53c2\u6570\u5b57\u5178 headers dict headers cookies Any cookies data Any data \u6570\u636e json Any json \u6570\u636e files Any \u6587\u4ef6\u6570\u636e auth Tuple[str, str]HTTPBasicAuth \u8ba4\u8bc1\u5143\u7ec4\u6216\u5bf9\u8c61 allow_redirects bool \u662f\u5426\u5141\u8bb8\u81ea\u52a8\u8df3\u8f6c proxies dict \u4ee3\u7406 ip hooks dict \u56de\u8c03\u65b9\u6cd5 verify bool \u662f\u5426\u9a8c\u8bc1SSL\u8bc1\u4e66 cert strTuple[str, str] SSL\u5ba2\u6237\u7aef\u8bc1\u4e66 \u793a\u4f8b\uff1a
from DownloadKit import DownloadKit\nd = DownloadKit()\nh = {'referer': 'demourl.com'}\nd.download(url, headers=h)\n"},{"location":"usage/create_object/","title":"\ud83d\udc18 \u521b\u5efa\u5bf9\u8c61","text":""},{"location":"usage/create_object/#downloadkit","title":"\u2705\ufe0f\ufe0f \u521b\u5efaDownloadKit\u5bf9\u8c61","text":"\u521b\u5efaDownloadKit\u5bf9\u8c61\u65f6\uff0cdriver\u53c2\u6570\u53ef\u4f20\u5165\u4e00\u4e2a\u7528\u4e8e\u643a\u5e26\u767b\u5f55\u4fe1\u606f\u7684\u5bf9\u8c61\uff0c\u53ef\u4ee5\u662f\u591a\u79cd\u7c7b\u578b\u3002
\u5f53\u4f20\u5165\u7684\u662fDrissionPage\u7684\u9875\u9762\u5bf9\u8c61\u65f6\uff0c\u8fd8\u53ef\u4ee5\u6839\u636e\u9875\u9762\u8bbf\u95ee\u7684 url \u81ea\u52a8\u8bbe\u7f6ereferer\u53c2\u6570\u3002
goal_path strPath None \u6587\u4ef6\u4fdd\u5b58\u8def\u5f84 roads int 10 \u53ef\u540c\u65f6\u8fd0\u884c\u7684\u7ebf\u7a0b\u6570 driver SessionSessionOptionsChromiumPageSessionPageChromiumTabWebPageWebPageTab None \u7528\u4e8e\u63d0\u4f9b\u4e0b\u8f7d\u8fde\u63a5\u4fe1\u606f\u7684\u9875\u9762\u6216\u94fe\u63a5\u5bf9\u8c61 file_exists str 'renmae' \u6709\u540c\u540d\u6587\u4ef6\u540d\u65f6\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u53ef\u9009'skip', 'overwrite', 'rename', 'add'"},{"location":"usage/create_object/#_1","title":"\u2705\ufe0f\ufe0f \u793a\u4f8b","text":""},{"location":"usage/create_object/#_2","title":"\ud83d\udccc \u76f4\u63a5\u521b\u5efa","text":"from DownloadKit import DownloadKit\nd = DownloadKit()\n"},{"location":"usage/create_object/#session","title":"\ud83d\udccc \u63a5\u6536Session\u5bf9\u8c61","text":"from requests import Session\nfrom DownloadKit import DownloadKit\nsession = Session()\nd = DownloadKit(session=session)\n"},{"location":"usage/create_object/#sessionoptions","title":"\ud83d\udccc \u63a5\u6536SessionOptions\u5bf9\u8c61","text":"from DrissionPage import SessionOptions\nfrom DownloadKit import DownloadKit\nso = SessionOptions()\nd = DownloadKit(session=so)\n"},{"location":"usage/create_object/#_3","title":"\ud83d\udccc \u63a5\u6536\u9875\u9762\u5bf9\u8c61","text":"from DrissionPage import ChromiumPage\nfrom DownloadKit import DownloadKit\np = ChromiumPage()\nd = DownloadKit(session=p)\n"},{"location":"usage/misssions/","title":"\ud83d\udc12 \u4efb\u52a1\u7ba1\u7406","text":"\u672c\u8282\u4ecb\u7ecd\u4e0b\u8f7d\u4efb\u52a1\u7684\u7ba1\u7406\u3002
add()\u65b9\u6cd5\u4f1a\u8fd4\u56de\u4e00\u4e2aMission\u5bf9\u8c61\uff0c\u8be5\u5bf9\u8c61\u53ef\u7528\u4e8e\u67e5\u770b\u4efb\u52a1\u4fe1\u606f\u548c\u7ba1\u7406\u4efb\u52a1\u3002
rate","text":"\u8be5\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u5b8c\u6210\u7684\u767e\u5206\u6bd4\u3002
\u7c7b\u578b\uff1afloat
\u793a\u4f8b\uff1a
d = DownloadKit()\nm = d.add(url)\nprint(m.rate)\n"},{"location":"usage/misssions/#_2","title":"\ud83d\udccc \u7b49\u5f85\u5355\u4e2a\u4efb\u52a1\u7ed3\u675f","text":"Mission\u5bf9\u8c61\u7684wait()\u65b9\u6cd5\u53ef\u7b49\u5f85\u8be5\u4efb\u52a1\u7ed3\u675f\u3002
show bool True \u662f\u5426\u6253\u5370\u4e0b\u8f7d\u4fe1\u606f timeout float 0 \u8d85\u65f6\u65f6\u95f4\uff0c0\u8868\u793a\u4e0d\u9650\u65f6 |\u8fd4\u56de\u7c7b\u578b|\u8bf4\u660e| |tuple|\u4efb\u52a1\u7ed3\u679c\u548c\u4fe1\u606f\u7ec4\u6210\u7684tuple\uff0c\u683c\u5f0f\uff1a(\u4efb\u52a1\u7ed3\u679c, \u4efb\u52a1\u4fe1\u606f)|
\u793a\u4f8b\uff1a
d = DownloadKit()\nm = d.add(url)\nm.wait()\n"},{"location":"usage/misssions/#_3","title":"\ud83d\udccc \u7b49\u5f85\u6240\u6709\u4efb\u52a1\u7ed3\u675f","text":"DownloadKit\u5bf9\u8c61\u7684wait()\u65b9\u6cd5\uff0c\u53ef\u7b49\u5f85\u6240\u6709\u4efb\u52a1\u7ed3\u675f\u3002
mission Missionint None \u4efb\u52a1\u5bf9\u8c61\u6216\u4efb\u52a1 id\uff0c\u4e3aNone\u65f6\u7b49\u5f85\u6240\u6709\u4efb\u52a1\u7ed3\u675f show bool False \u662f\u5426\u663e\u793a\u8fdb\u5ea6 timeout floatNone None \u8d85\u65f6\u65f6\u95f4\uff0cNone\u62160\u4e0d\u9650\u65f6 \u793a\u4f8b\uff1a
d = DownloadKit()\nd.add(url1)\nd.add(url2)\nd.wait()\n"},{"location":"usage/misssions/#_4","title":"\ud83d\udccc \u53d6\u6d88\u4efb\u52a1","text":"cancel()\u7528\u4e8e\u4e2d\u9014\u53d6\u6d88\u4efb\u52a1\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
del_file()\u7528\u4e8e\u5220\u9664\u4efb\u52a1\u5df2\u4e0b\u8f7d\u7684\u6587\u4ef6\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
state\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u72b6\u6001\uff0c\u6709\u4ee5\u4e0b\u4e09\u79cd\uff1a
'waiting'\uff1a\u7b49\u5f85\u5f00\u59cb'running'\uff1a\u8fd0\u884c\u4e2d'done'\uff1a\u5df2\u7ed3\u675f\u4efb\u52a1\u72b6\u6001\u4e0d\u80fd\u770b\u51fa\u4efb\u52a1\u662f\u5426\u6210\u529f\uff0c\u53ea\u80fd\u663e\u793a\u4efb\u52a1\u662f\u5426\u5728\u8fd0\u884c\u3002
"},{"location":"usage/misssions/#_8","title":"\ud83d\udccc \u4efb\u52a1\u7ed3\u679c","text":"result\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u7ed3\u679c\uff0c\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a
'success'\uff1a\u4e0b\u8f7d\u6210\u529f'skipped'\uff1a\u8df3\u8fc7\uff0c\u5b58\u5728\u540c\u540d\u6587\u4ef6\uff0c\u4e14\u8bbe\u7f6e\u4e3a\u8df3\u8fc7\u65f6'canceled'\uff1a\u88ab\u53d6\u6d88False\uff1a\u4efb\u52a1\u5931\u8d25None\uff1a\u672a\u77e5\uff0c\u4efb\u52a1\u8fd8\u6ca1\u7ed3\u675finfo\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u4fe1\u606f\uff0c\u5728\u4efb\u52a1\u4e0d\u540c\u9636\u6bb5\uff0c\u4f1a\u8fd4\u56de\u4e0d\u540c\u4fe1\u606f\u3002
info\u662f\u5bf9\u5f53\u524d\u72b6\u6001\u7684\u6587\u5b57\u89e3\u91ca\uff0c\u5982\u4efb\u52a1\u5931\u8d25\u65f6\uff0c\u4f1a\u8fd4\u56de\u5931\u8d25\u539f\u56e0\uff0c\u6210\u529f\u65f6\u4f1a\u8fd4\u56de\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\u3002
DownloadKit\u5bf9\u8c61\u7684missions\u5c5e\u6027\u4ee5liist\u65b9\u5f0f\u8fd4\u56de\u6240\u6709\u4efb\u52a1\u5bf9\u8c61\u3002
\u793a\u4f8b\uff1a
d = DownloadKit()\nd.add(url)\nprint(d.missions)\n"},{"location":"usage/misssions/#_12","title":"\ud83d\udccc \u67e5\u627e\u4efb\u52a1","text":"DownloadKit\u5bf9\u8c61\u7684get_mission()\u65b9\u6cd5\u53ef\u6839\u636e\u4efb\u52a1 id \u83b7\u53d6\u4efb\u52a1\u5bf9\u8c61\u3002
mission_or_id Missionint \u5fc5\u586b \u4efb\u52a1\u6216\u4efb\u52a1 id \u8fd4\u56de\u7c7b\u578b \u8bf4\u660e Mission \u4efb\u52a1\u5bf9\u8c61 None \u6ca1\u6709\u627e\u5230\u8be5\u4efb\u52a1"},{"location":"usage/misssions/#_13","title":"\ud83d\udccc \u83b7\u53d6\u5931\u8d25\u7684\u4efb\u52a1","text":"DownloadKit\u5bf9\u8c61\u7684get_failed_missions()\u65b9\u6cd5\u53ef\u4ee5list\u65b9\u5f0f\u8fd4\u56de\u5931\u8d25\u7684\u4efb\u52a1\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\u7c7b\u578b \u8bf4\u660eList[Mission] \u4efb\u52a1\u5bf9\u8c61\u7ec4\u6210\u7684\u5217\u8868"},{"location":"usage/misssions/#mission","title":"\u2705\ufe0f\ufe0f Mission\u5bf9\u8c61\u7684\u5c5e\u6027","text":""},{"location":"usage/misssions/#id","title":"\ud83d\udccc id","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1 id\u3002
\u7c7b\u578b\uff1aint
data","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u4f7f\u7528\u7684\u6570\u636e\uff0c\u5373\u521b\u5efa\u4efb\u52a1\u65f6\u8f93\u5165\u7684\u53c2\u6570\u3002
\u7c7b\u578b\uff1aMissionData
state","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u72b6\u6001\uff0c\u6709\u4e09\u79cd\uff1a'waiting'\u3001'running'\u3001'done'\u3002
\u7c7b\u578b\uff1astr
result","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u7ed3\u679c\uff0c\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a'success'\u3001'skipped'\u3001'canceled'\u3001False\u3001None
\u7c7b\u578b\uff1astr
info","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u63cf\u8ff0\u4fe1\u606f\u3002
\u7c7b\u578b\uff1astr
is_done","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u4efb\u52a1\u662f\u5426\u5df2\u5b8c\u6210\u3002
\u7c7b\u578b\uff1abool
size","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u6587\u4ef6\u5927\u5c0f\u3002
\u7c7b\u578b\uff1aint\u6216None
tasks","text":"\u6b64\u5c5e\u6027\u4ee5list\u65b9\u5f0f\u8fd4\u56de\u6240\u6709\u5b50\u4efb\u52a1
\u7c7b\u578b\uff1aList[Task]
tasks_count","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u5b50\u4efb\u52a1\u6570\u91cf\u3002
\u7c7b\u578b\uff1aint
done_tasks_count","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u5df2\u5b8c\u6210\u7684\u5b50\u4efb\u52a1\u6570\u91cf\u3002
\u7c7b\u578b\uff1aint
file_name","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u6587\u4ef6\u540d\u3002
\u7c7b\u578b\uff1astr\u6216None
method","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u8fde\u63a5\u65b9\u5f0f\uff0c'get'\u6216'post'\u3002
\u7c7b\u578b\uff1astr
path","text":"\u6b64\u5c5e\u6027\u8fd4\u56de\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\u3002
\u7c7b\u578b\uff1astr
rate","text":"\u6b64\u5c5e\u6027\u4ee5\u767e\u5206\u6bd4\u65b9\u5f0f\u8fd4\u56de\u4e0b\u8f7d\u8fdb\u5ea6\u3002
\u7c7b\u578b\uff1afloat
\u672c\u8282\u4ecb\u7ecdDownloadKit\u5bf9\u8c61\u76f8\u5173\u8bbe\u7f6e\u3002
\u4f7f\u7528DownloadKit\u5bf9\u8c61\u7684set.xxxx()\u65b9\u6cd5\uff0c\u53ef\u5bf9\u5404\u79cd\u5141\u8bb8\u53c2\u6570\u8fdb\u884c\u8bbe\u7f6e\u3002
\u8fd9\u79cd\u65b9\u6cd5\u8bbe\u7f6e\u7684\u53c2\u6570\u65f6\u5168\u5c40\u6709\u6548\u7684\uff0c\u4e4b\u540e\u65b0\u5efa\u7684\u4efb\u52a1\u4f1a\u9ed8\u8ba4\u4f7f\u7528\u3002
from DownloadKit import DownloadKit\nd = DownloadKit()\nd.set.block_size('10m') # \u8bbe\u7f6e\u5206\u5757\u5927\u5c0f\n"},{"location":"usage/settings/#_3","title":"\ud83d\udccc \u6bcf\u4e2a\u4efb\u52a1\u72ec\u7acb\u8bbe\u7f6e","text":"\u6bcf\u6b21\u65b0\u5efa\u4efb\u52a1\u65f6\uff0c\u53ef\u8bbe\u7f6e\u5f53\u524d\u9879\u76ee\u6709\u6548\u7684\u8bbe\u7f6e\uff0c\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e\u3002
from DownloadKit import DownloadKit\nd = DownloadKit()\nd.set.goal_path('tmp1') # \u8bbe\u7f6e\u5168\u5c40\u4fdd\u5b58\u8def\u5f84\nd.add(url, goal_path='tmp2') # \u521b\u5efa\u4efb\u52a1\u65f6\u6307\u5b9a\u4fdd\u5b58\u8def\u5f84\n"},{"location":"usage/settings/#_4","title":"\u2705\ufe0f\ufe0f \u8fd0\u884c\u8bbe\u7f6e","text":""},{"location":"usage/settings/#setdriver","title":"\ud83d\udccc set.driver()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u63d0\u4f9b\u4e0b\u8f7d\u8fde\u63a5\u4fe1\u606f\u7684\u9875\u9762\u6216\u94fe\u63a5\u5bf9\u8c61\u3002
\u652f\u6301 DrissionPage \u6240\u6709\u9875\u9762\u5bf9\u8c61\u3001Session\u5bf9\u8c61\u3001SessionOptions\u5bf9\u8c61\u3002
\u7a0b\u5e8f\u53ef\u4ece\u4f20\u5165\u7684\u5bf9\u8c61\u4e2d\u81ea\u52a8\u83b7\u53d6\u767b\u5f55\u4fe1\u606f\uff0c\u5982\u4f20\u5165\u9875\u9762\u5bf9\u8c61\uff0c\u8fd8\u80fd\u81ea\u52a8\u8bbe\u7f6eReferer\u53c2\u6570\u3002
driver SessionSessionOptionsChromiumPageSessionPageChromiumTabWebPageWebPageTab \u5fc5\u586b \u7528\u4e8e\u63d0\u4f9b\u8fde\u63a5\u4fe1\u606f\u7684\u5bf9\u8c61 \u8fd4\u56de\uff1aNone
set.goal_path()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660egoal_path strPath \u5fc5\u586b \u6587\u4ef6\u4fdd\u5b58\u8def\u5f84 \u8fd4\u56de\uff1aNone
set.if_file_exists()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8def\u5f84\u5b58\u5728\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\u3002
\u53ef\u9009'skip', 'rename', 'overwrite', 'add'\u3002
mode str \u5fc5\u586b \u5904\u7406\u65b9\u5f0f\u5b57\u7b26\u4e32 skip\uff1a\u8df3\u8fc7\uff0c\u4e0d\u4e0b\u8f7doverwrite\uff1a\u8986\u76d6\u539f\u6709\u6587\u4ef6rename\uff1a\u4ee5\u5728\u540e\u9762\u6dfb\u52a0\u5e8f\u53f7\u7684\u65b9\u5f0f\u7ed9\u65b0\u6587\u4ef6\u91cd\u547d\u540dadd\uff1a\u5728\u539f\u6709\u6587\u4ef6\u672b\u5c3e\u8ffd\u52a0\u5185\u5bb9\u8fd4\u56de\uff1aNone
set.if_file_exists.xxxx()","text":"\u8fd9\u51e0\u4e2a\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8def\u5f84\u5b58\u5728\u540c\u540d\u6587\u4ef6\u65f6\u7684\u5904\u7406\u65b9\u5f0f\u3002
\u6548\u679c\u4e0eset.if_file_exists()\u4e00\u81f4\u3002
skip()\uff1a\u8df3\u8fc7\uff0c\u4e0d\u4e0b\u8f7doverwrite()\uff1a\u8986\u76d6\u539f\u6709\u6587\u4ef6rename()\uff1a\u4ee5\u5728\u540e\u9762\u6dfb\u52a0\u5e8f\u53f7\u7684\u65b9\u5f0f\u7ed9\u65b0\u6587\u4ef6\u91cd\u547d\u540dadd()\uff1a\u5728\u539f\u6709\u6587\u4ef6\u672b\u5c3e\u8ffd\u52a0\u5185\u5bb9\u793a\u4f8b\uff1a
from DownloadKit import DownloadKit\nd = DownloadKit()\nd.set.if_file_exists.skip()\n"},{"location":"usage/settings/#setroads","title":"\ud83d\udccc set.roads()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u53ef\u540c\u65f6\u8fd0\u884c\u7684\u7ebf\u7a0b\u6570\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660enum int \u5fc5\u586b \u7ebf\u7a0b\u6570\u91cf \u8fd4\u56de\uff1aNone
set.retry()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8fde\u63a5\u5931\u8d25\u65f6\u91cd\u8bd5\u6b21\u6570\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660etimes int \u5fc5\u586b \u91cd\u8bd5\u6b21\u6570 \u8fd4\u56de\uff1aNone
set.interval()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8fde\u63a5\u5931\u8d25\u65f6\u91cd\u8bd5\u95f4\u9694\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660eseconds float \u5fc5\u586b \u8fde\u63a5\u5931\u8d25\u65f6\u91cd\u8bd5\u95f4\u9694\uff08\u79d2\uff09 \u8fd4\u56de\uff1aNone
set.timeout()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660eseconds float \u5fc5\u586b \u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09 \u8fd4\u56de\uff1aNone
set.split()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u5927\u6587\u4ef6\u662f\u5426\u5206\u5757\u4e0b\u8f7d\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660eon_off bool \u5fc5\u586b bool\u4ee3\u8868\u5f00\u5173 \u8fd4\u56de\uff1aNone
set.block_size()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8bbe\u7f6e\u5206\u5757\u5927\u5c0f\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660esize strint \u5fc5\u586b \u53ef\u63a5\u6536int\u548cstr\u5f62\u5f0f\uff0c\u63a5\u6536int\u65f6\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff1b\u63a5\u6536str\u65f6\u683c\u5f0f\u6709\uff1a'10b'\u3001'10k'\u3001'10m'\u3001'10g'\u56db\u79cd\uff0c\u4e0d\u533a\u5206\u5927\u5c0f\u5199 \u8fd4\u56de\uff1aNone
set.proxies()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u4ee3\u7406\u5730\u5740\u53ca\u7aef\u53e3\uff0c\u4f8b\uff1a'127.0.0.1:1080'\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660ehttp str None http \u4ee3\u7406\u5730\u5740\u53ca\u7aef\u53e3 https str None https \u4ee3\u7406\u5730\u5740\u53ca\u7aef\u53e3 \u8fd4\u56de\uff1aNone
\u65e5\u5fd7\u8bbe\u7f6e\u65b9\u6cd5\u5728set.log\u5c5e\u6027\u4e2d\u3002
set.log.path()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\u3002
\u53c2\u6570\u540d\u79f0 \u7c7b\u578b \u9ed8\u8ba4\u503c \u8bf4\u660epath strPath \u5fc5\u586b \u6587\u4ef6\u8def\u5f84 \u8fd4\u56de\uff1aNone
set.log.print_all()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u6253\u5370\u6240\u6709\u4efb\u52a1\u4fe1\u606f\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
set.log.print_failed()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u6253\u5370\u5931\u8d25\u7684\u4efb\u52a1\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
set.log.print_nothing()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u4e0d\u6253\u5370\u4efb\u4f55\u4fe1\u606f\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
set.log.log_all()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bb0\u5f55\u6253\u5370\u6240\u6709\u4efb\u52a1\u4fe1\u606f\u5230\u6587\u4ef6\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
set.log.log_failed()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u8bb0\u5f55\u5931\u8d25\u7684\u4efb\u52a1\u5230\u6587\u4ef6\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
set.log.log_nothing()","text":"\u6b64\u65b9\u6cd5\u7528\u4e8e\u8bbe\u7f6e\u4e0d\u8bb0\u5f55\u4efb\u4f55\u4fe1\u606f\u5230\u6587\u4ef6\u3002
\u53c2\u6570\uff1a \u65e0
\u8fd4\u56de\uff1aNone
DownloadKit对象方法download()此方法用于单线程阻塞式下载一个文件。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
file_url |
-str |
-必填 | -文件网址 | -
goal_path |
-strPath |
-None |
-保存路径,为None时保存到当前文件夹 |
-
rename |
-str |
-None |
-指定文件另存的名称,可不带后缀,程序会自动补充 | -
file_exists |
-str |
-None |
-遇到同名文件时的处理方式,可选'skip', 'overwrite', 'rename', 'add',默认跟随实例属性 |
-
show_msg |
-bool |
-True |
-是否打印下载信息和进度 | -
**kwargs |
-Any |
-无 | -requests 的连接参数 | -
连接参数**kwargs与 requests 的get()方法一致。
| 参数名称 | -类型 | -说明 | -
|---|---|---|
timeout |
-float |
-连接超时时间 | -
params |
-dict |
-查询参数字典 | -
headers |
-dict |
-headers | -
cookies |
-Any |
-cookies | -
data |
-Any |
-data 数据 | -
json |
-Any |
-json 数据 | -
files |
-Any |
-文件数据 | -
auth |
-Tuple[str, str]HTTPBasicAuth |
-认证元组或对象 | -
allow_redirects |
-bool |
-是否允许自动跳转 | -
proxies |
-dict |
-代理 ip | -
hooks |
-dict |
-回调方法 | -
verify |
-bool |
-是否验证SSL证书 | -
cert |
-strTuple[str, str] |
-SSL客户端证书 | -
| 返回类型 | -说明 | -
|---|---|
tuple |
-格式:(任务结果, 任务信息) | -
任务结果有如下几种:
-'success':下载成功'skipped':已跳过'canceled':被取消False:任务失败如果下载成功,任务信息返回文件路径,如果失败,返回失败原因。
-add()此方法添加一个并发任务。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
file_url |
-str |
-必填 | -文件网址 | -
goal_path |
-strPath |
-None |
-保存路径,为None时保存到当前文件夹 |
-
rename |
-`str|None |
-指定文件另存的名称,可不带后缀,程序会自动补充 | -- |
file_exists |
-str |
-None |
-遇到同名文件时的处理方式,可选'skip', 'overwrite', 'rename', 'add',默认跟随实例属性 |
-
split |
-bool |
-None |
-当前任务是否启用多线程分块下载,默认跟随实例属性 | -
**kwargs |
-Any |
-无 | -requests 的连接参数 | -
**kwargs参数与download()一致,见上文。
| 返回类型 | -说明 | -
|---|---|
Mission |
-任务对象,可用于观察任务状态、取消任务 | -
wait()此方法用于等待所有或指定任务完成。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
mission |
-Missionint |
-None |
-任务对象或任务 id,为None时等待所有任务结束 |
-
show |
-bool |
-False |
-是否显示进度 | -
timeout |
-floatNone |
-None |
-超时时间,None或0不限时 |
-
cancel()此方法用于取消所有等待中或执行中的任务。
-参数: 无
-返回:None
get_mission()此方法根据id值获取一个任务。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
mission_or_id |
-Missionint |
-必填 | -任务或任务 id | -
| 返回类型 | -说明 | -
|---|---|
Mission |
-任务对象 | -
None |
-没有找到该任务 | -
get_failed_missions()此方法返回失败任务列表。
-参数: 无
-| 返回类型 | -说明 | -
|---|---|
List[Mission] |
-任务对象组成的列表 | -
DownloadKit属性goal_path此属性返回文件默认保存文件夹路径,默认程序当前路径。
-类型: str
file_exists此属性返回遇到同名文件时的处理方式,有以下几种:'skip', 'overwrite', 'rename', 'add'。
默认'rename'。
类型: str
split此属性返回大文件是否分块下载,默认True。
类型: bool
set此属性返回用于设置DownloadKit对象的设置对象。
类型: Setter
timeout此属性返回连接超时时间,默认 20 秒,如果驱动是DrissionPage的页面对象,使用页面对象的timeout属性。
类型: float
retry此属性返回连接失败时重试次数,默认3。
类型: int
interval此属性返回连接失败时重试间隔,默认 5 次。
-类型: int
is_running此属性返回是否有线程还在运行。
-类型: bool
missions此属性返回所有任务对象。
-类型: bool
waiting_list此属性返回返回等待执行的任务队列。
-类型: List[Mission]
本节介绍如何添加下载任务。
-使用download()方法,可创建单线程阻塞式任务。
即使遇到大文件,download()也只有一个线程执行下载,不会分块。
该方法会在文件下载完成后才让程序继续往下运行。
-download()返回任务结果和信息组成的tuple,第一位是任务结果,第二位是任务信息。
如果下载成功,任务信息返回文件路径,如果失败,返回失败原因。
-任务结果有以下几种:
-'success':下载成功'skipped':已跳过'canceled':被取消False:任务失败示例:
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url = 'https://gitee.com/static/images/logo-black.svg'
-
-d.download(url)
-使用add()方法,可添加并发任务。
add()方法返回Mission对象,可以用于任务管理,在任务管理章节介绍。
示例:
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url1 = 'https://gitee.com/static/images/logo-black.svg'
-url2 = 'https://gitee.com/static/images/logo-black.svg'
-
-m1 = d.add(url1)
-m2 = d.add(url2)
-如果想使用多线程下载大文件,且需要在这个文件下载完再执行后面的语句,可以在add()后面使用wait()方法,可创建单线程阻塞式任务。
wait()方法有show_msg参数,可指定是否打印下载进度。
示例:
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-url = 'https://gitee.com/static/images/logo-black.svg'
-
-d.add(url).wait(show_msg=False)
-除了多个任务并行执行,单个文件也可以分为多个子任务分块同时下载。
-add()方法的split参数可以设置是否启用分块下载,默认为True。
除了split参数,还需符合两个条件,分块下载才会执行:
服务器支持分块下载
-目标文件大小小于设定的分块大小
-分块大小默认为 50MB,可用set.block_size()设置。
示例:
-from DownloadKit import DowwnloadKit
-
-d = DownloadKit()
-d.set.block_size('30m')
-url = 'https://dldir1.qq.com/qqfile/qq/TIM3.4.8/TIM3.4.8.22086.exe'
-
-d.add(url) # 默认启用分块下载
-d.add(url, split=False) # 禁用分块下载
-当download()或add()存在data或json参数时,会使用 post 方式进行连接。
不存在这两个参数时,用 get 方式连接。
-示例:
- -download()和add()方法参数基本一致,有微小差别。
download()| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
file_url |
-str |
-必填 | -文件网址 | -
goal_path |
-strPath |
-None |
-保存路径,为None时保存到当前文件夹 |
-
rename |
-str |
-None |
-指定文件另存的名称,可不带后缀,程序会自动补充 | -
file_exists |
-str |
-None |
-遇到同名文件时的处理方式,可选'skip', 'overwrite', 'rename', 'add',默认跟随实例属性 |
-
show_msg |
-bool |
-True |
-是否打印下载信息和进度 | -
**kwargs |
-Any |
-无 | -requests 的连接参数 | -
add()| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
file_url |
-str |
-必填 | -文件网址 | -
goal_path |
-strPath |
-None |
-保存路径,为None时保存到当前文件夹 |
-
rename |
-`str|None |
-指定文件另存的名称,可不带后缀,程序会自动补充 | -- |
file_exists |
-str |
-None |
-遇到同名文件时的处理方式,可选'skip', 'overwrite', 'rename', 'add',默认跟随实例属性 |
-
split |
-bool |
-None |
-是否启用多线程分块下载,默认跟随实例属性 | -
**kwargs |
-Any |
-无 | -requests 的连接参数 | -
连接参数即**kwargs允许接收到参数,与 requests 的get()方法一致。
| 参数名称 | -类型 | -说明 | -
|---|---|---|
timeout |
-float |
-连接超时时间 | -
params |
-dict |
-查询参数字典 | -
headers |
-dict |
-headers | -
cookies |
-Any |
-cookies | -
data |
-Any |
-data 数据 | -
json |
-Any |
-json 数据 | -
files |
-Any |
-文件数据 | -
auth |
-Tuple[str, str]HTTPBasicAuth |
-认证元组或对象 | -
allow_redirects |
-bool |
-是否允许自动跳转 | -
proxies |
-dict |
-代理 ip | -
hooks |
-dict |
-回调方法 | -
verify |
-bool |
-是否验证SSL证书 | -
cert |
-strTuple[str, str] |
-SSL客户端证书 | -
示例:
- - - - - - - -DownloadKit对象创建DownloadKit对象时,driver参数可传入一个用于携带登录信息的对象,可以是多种类型。
当传入的是DrissionPage的页面对象时,还可以根据页面访问的 url 自动设置referer参数。
| 初始化参数 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
goal_path |
-strPath |
-None |
-文件保存路径 | -
roads |
-int |
-10 |
-可同时运行的线程数 | -
driver |
-SessionSessionOptionsChromiumPageSessionPageChromiumTabWebPageWebPageTab |
-None |
-用于提供下载连接信息的页面或链接对象 | -
file_exists |
-str |
-'renmae' |
-有同名文件名时的处理方式,可选'skip', 'overwrite', 'rename', 'add' |
-
Session对象from requests import Session
-from DownloadKit import DownloadKit
-
-session = Session()
-d = DownloadKit(session=session)
-SessionOptions对象from DrissionPage import SessionOptions
-from DownloadKit import DownloadKit
-
-so = SessionOptions()
-d = DownloadKit(session=so)
-本节介绍下载任务的管理。
-add()方法会返回一个Mission对象,该对象可用于查看任务信息和管理任务。
rate该属性返回任务完成的百分比。
-类型:float
示例:
- -Mission对象的wait()方法可等待该任务结束。
| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
show |
-bool |
-True |
-是否打印下载信息 | -
timeout |
-float |
-0 |
-超时时间,0表示不限时 |
-
|返回类型|说明|
-|tuple|任务结果和信息组成的tuple,格式:(任务结果, 任务信息)|
示例:
- -DownloadKit对象的wait()方法,可等待所有任务结束。
| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
mission |
-Missionint |
-None |
-任务对象或任务 id,为None时等待所有任务结束 |
-
show |
-bool |
-False |
-是否显示进度 | -
timeout |
-floatNone |
-None |
-超时时间,None或0不限时 |
-
示例:
- -cancel()用于中途取消任务。
参数: 无
-返回:None
del_file()用于删除任务已下载的文件。
参数: 无
-返回:None
state属性返回任务状态,有以下三种:
'waiting':等待开始'running':运行中'done':已结束任务状态不能看出任务是否成功,只能显示任务是否在运行。
-result属性返回任务结果,有以下几种:
'success':下载成功'skipped':跳过,存在同名文件,且设置为跳过时'canceled':被取消False:任务失败None:未知,任务还没结束info属性返回任务信息,在任务不同阶段,会返回不同信息。
info是对当前状态的文字解释,如任务失败时,会返回失败原因,成功时会返回文件保存路径。
DownloadKit对象的missions属性以liist方式返回所有任务对象。
示例:
- -DownloadKit对象的get_mission()方法可根据任务 id 获取任务对象。
| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
mission_or_id |
-Missionint |
-必填 | -任务或任务 id | -
| 返回类型 | -说明 | -
|---|---|
Mission |
-任务对象 | -
None |
-没有找到该任务 | -
DownloadKit对象的get_failed_missions()方法可以list方式返回失败的任务。
参数: 无
-| 返回类型 | -说明 | -
|---|---|
List[Mission] |
-任务对象组成的列表 | -
Mission对象的属性id此属性返回任务 id。
-类型:int
data此属性返回任务使用的数据,即创建任务时输入的参数。
-类型:MissionData
state此属性返回任务状态,有三种:'waiting'、'running'、'done'。
类型:str
result此属性返回任务结果,有以下几种:'success'、'skipped'、'canceled'、False、None
类型:str
info此属性返回任务描述信息。
-类型:str
is_done此属性返回任务是否已完成。
-类型:bool
size此属性返回文件大小。
-类型:int或None
tasks此属性以list方式返回所有子任务
类型:List[Task]
tasks_count此属性返回子任务数量。
-类型:int
done_tasks_count此属性返回已完成的子任务数量。
-类型:int
file_name此属性返回文件名。
-类型:str或None
method此属性返回连接方式,'get'或'post'。
类型:str
path此属性返回文件保存路径。
-类型:str
rate此属性以百分比方式返回下载进度。
-类型:float
本节介绍DownloadKit对象相关设置。
使用DownloadKit对象的set.xxxx()方法,可对各种允许参数进行设置。
这种方法设置的参数时全局有效的,之后新建的任务会默认使用。
- -每次新建任务时,可设置当前项目有效的设置,覆盖全局设置。
-from DownloadKit import DownloadKit
-
-d = DownloadKit()
-d.set.goal_path('tmp1') # 设置全局保存路径
-
-d.add(url, goal_path='tmp2') # 创建任务时指定保存路径
-set.driver()此方法用于设置提供下载连接信息的页面或链接对象。
-支持 DrissionPage 所有页面对象、Session对象、SessionOptions对象。
程序可从传入的对象中自动获取登录信息,如传入页面对象,还能自动设置Referer参数。
| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
driver |
-SessionSessionOptionsChromiumPageSessionPageChromiumTabWebPageWebPageTab |
-必填 | -用于提供连接信息的对象 | -
返回:None
set.goal_path()此方法用于设置文件保存路径。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
goal_path |
-strPath |
-必填 | -文件保存路径 | -
返回:None
set.if_file_exists()此方法用于设置路径存在同名文件时的处理方式。
-可选'skip', 'rename', 'overwrite', 'add'。
| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
mode |
-str |
-必填 | -处理方式字符串 | -
skip:跳过,不下载overwrite:覆盖原有文件rename:以在后面添加序号的方式给新文件重命名add:在原有文件末尾追加内容返回:None
set.if_file_exists.xxxx()这几个方法用于设置路径存在同名文件时的处理方式。
-效果与set.if_file_exists()一致。
skip():跳过,不下载overwrite():覆盖原有文件rename():以在后面添加序号的方式给新文件重命名add():在原有文件末尾追加内容示例:
- -set.roads()此方法用于设置可同时运行的线程数。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
num |
-int |
-必填 | -线程数量 | -
返回:None
set.retry()此方法用于设置连接失败时重试次数。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
times |
-int |
-必填 | -重试次数 | -
返回:None
set.interval()此方法用于设置连接失败时重试间隔。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
seconds |
-float |
-必填 | -连接失败时重试间隔(秒) | -
返回:None
set.timeout()此方法用于设置连接超时时间。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
seconds |
-float |
-必填 | -超时时间(秒) | -
返回:None
set.split()此方法用于设置大文件是否分块下载。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
on_off |
-bool |
-必填 | -bool代表开关 |
-
返回:None
set.block_size()此方法用于设置设置分块大小。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
size |
-strint |
-必填 | -可接收int和str形式,接收int时以字节为单位;接收str时格式有:'10b'、'10k'、'10m'、'10g'四种,不区分大小写 |
-
返回:None
set.proxies()此方法用于设置代理地址及端口,例:'127.0.0.1:1080'。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
http |
-str |
-None |
-http 代理地址及端口 | -
https |
-str |
-None |
-https 代理地址及端口 | -
返回:None
日志设置方法在set.log属性中。
set.log.path()此方法用于设置日志文件路径。
-| 参数名称 | -类型 | -默认值 | -说明 | -
|---|---|---|---|
path |
-strPath |
-必填 | -文件路径 | -
返回:None
set.log.print_all()此方法用于设置打印所有任务信息。
-参数: 无
-返回:None
set.log.print_failed()此方法用于设置打印失败的任务。
-参数: 无
-返回:None
set.log.print_nothing()此方法用于设置不打印任何信息。
-参数: 无
-返回:None
set.log.log_all()此方法用于记录打印所有任务信息到文件。
-参数: 无
-返回:None
set.log.log_failed()此方法用于设置记录失败的任务到文件。
-参数: 无
-返回:None
set.log.log_nothing()此方法用于设置不记录任何信息到文件。
-参数: 无
-返回:None