修改文档

This commit is contained in:
g1879 2023-01-30 17:51:18 +08:00
parent cb79c1b6c2
commit 5c20c0989d
4 changed files with 71 additions and 61 deletions

View File

@ -56,7 +56,7 @@ ac = ActionChains(page)
| `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 | | `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 使鼠标移动到 ele 元素上 **示例:** 使鼠标移动到 ele 元素上
@ -76,7 +76,7 @@ ac.move_to(ele_or_loc=ele)
| `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 | | `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 鼠标向右移动 300 像素 **示例:** 鼠标向右移动 300 像素
@ -94,7 +94,7 @@ ac.move(300, 0)
| `pixel` | `int` | 无 | 鼠标移动的像素值 | | `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 鼠标向上移动 50 像素 **示例:** 鼠标向上移动 50 像素
@ -112,7 +112,7 @@ ac.up(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 | | `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -130,7 +130,7 @@ ac.down(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 | | `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -148,7 +148,7 @@ ac.left(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 | | `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -168,7 +168,7 @@ ac.right(50)
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -186,7 +186,7 @@ ac.click('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -204,7 +204,7 @@ ac.r_click('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -222,7 +222,7 @@ ac.m_click('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -240,7 +240,7 @@ ac.hold('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 移动到某元素上然后释放鼠标左键 **示例:** 移动到某元素上然后释放鼠标左键
@ -258,7 +258,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
## 📍 `r_release()` ## 📍 `r_release()`
@ -270,7 +270,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
## 📍 `m_hold()` ## 📍 `m_hold()`
@ -282,7 +282,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
## 📍 `m_release()` ## 📍 `m_release()`
@ -294,7 +294,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要释放的元素对象或文本定位符 |
| 类型 | 说明 | | 类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
# ✔ 滚动滚轮 # ✔ 滚动滚轮
@ -310,7 +310,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`<br>`str` | `None` | 要滚动的元素对象或文本定位符 | | `on_ele` | `ChromiumElement`<br>`str` | `None` | 要滚动的元素对象或文本定位符 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
# ✔ 键盘按键 # ✔ 键盘按键
@ -324,7 +324,7 @@ ac.release('#div1')
| `key` | `str` | 无 | 按键键值 | | `key` | `str` | 无 | 按键键值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 按下 ctrl 键 **示例:** 按下 ctrl 键
@ -344,7 +344,7 @@ ac.key_down(Keys.CTRL)
| `key` | `str` | 无 | 按键键值 | | `key` | `str` | 无 | 按键键值 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 提起 ctrl 键 **示例:** 提起 ctrl 键
@ -364,7 +364,7 @@ ac.key_up(Keys.CTRL)
| `text` | `str` | 无 | 要输入的文本 | | `text` | `str` | 无 | 要输入的文本 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** **示例:**
@ -384,7 +384,7 @@ ac.type('text')
| `second` | `float` | 无 | 等待秒数 | | `second` | `float` | 无 | 等待秒数 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| -------------- | ------- | |:--------------:| ------- |
| `ActionChains` | 动作链对象本身 | | `ActionChains` | 动作链对象本身 |
**示例:** 停顿 3 秒 **示例:** 停顿 3 秒

View File

@ -1,24 +1,27 @@
本节介绍如访问网页。 本节介绍如访问网页。
# ✔️ d 模式 # ✔️ 浏览器访问网页
d 模式下使用`get()`方法访问网页。 `ChromiumPage``WebPage`的 d 模式用于控制浏览器,使用`get()`方法访问网页。
## 📍 `get()`方法 ## 📍 `get()`方法
该方法用于跳转到一个网址。 该方法用于跳转到一个网址。
当连接失败时,程序默认重试 3 次,每次间隔 2 秒,可以通过参数设置重试次数和间隔。 当连接失败时,程序默认重试 3 次,每次间隔 2 秒,可以通过参数设置重试次数和间隔。
d 模式下根据浏览器的状态,还可以通过重写`check_page()`方法实现自定义检查方式。
**参数:** | 参数名称 | 类型 | 默认值 | 说明 |
|:-------------:|:-------:|:-------:| --------------------------- |
| `url` | `str` | 无 | 目标url |
| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
| `timeout` | `float` | `None` | 加载超时时间(秒) |
- `url`:目标 url | 返回类型 | 说明 |
- `show_errmsg`:是否显示和抛出异常。默认不抛出,连接错误会返回`None` |:------:| ----- |
- `retry`:重试次数,与页面对象的设置一致,默认 3 次 | `bool` | 否连接成功 |
- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
- `timeout`:连接超时时间(秒)
**返回:**`bool`类型,表示是否连接成功 **示例:**
```python ```python
from DrissionPage import WebPage from DrissionPage import WebPage
@ -29,7 +32,7 @@ page.get('https://www.baidu.com')
## 📍 设置超时时间和重试参数 ## 📍 设置超时时间和重试参数
网络不稳定访问页面不一定成功,`get()`方法内置了超时和重试功能。通过`retry``interval``timeout`三个参数进行设置。 网络不稳定时访问页面不一定成功,`get()`方法内置了超时和重试功能。通过`retry``interval``timeout`三个参数进行设置。
其中,如不指定`timeout`参数,该参数会使用`WebPage``timeouts`属性的`page_load`参数中的值。 其中,如不指定`timeout`参数,该参数会使用`WebPage``timeouts`属性的`page_load`参数中的值。
```python ```python
@ -58,27 +61,29 @@ page = WebPage()
page.set_page_load_strategy() page.set_page_load_strategy()
``` ```
# ✔️ s 模式 # ✔️ 数据包访问网页
s 模式基于 requests因此可使用 requests 内置的所有请求方式,包括`get()``post()``head()``options()``put()``patch()``delete()` `SessionPage``WebPage`s 模式基于 requests因此可使用 requests 内置的所有请求方式,包括`get()``post()``head()``options()``put()``patch()``delete()`
。不过本库目前只对`get()``post()`做了封装和优化,其余方式可通过调用`WebPage`内置的`Session`对象使用。 。不过本库目前只对`get()``post()`做了封装和优化,其余方式可通过调用页面对象内置的`Session`对象调用。
## 📍 `get()`方法 ## 📍 `get()`方法
`get()`方法使用语法与 requests 的`get()`方法一致,在此基础上增加了重试设置参数。 `get()`方法使用语法与 requests 的`get()`方法一致,在此基础上增加了重试设置参数。
参数: | 参数名称 | 类型 | 默认值 | 说明 |
|:-------------:|:-------:|:-------:| --------------------------- |
| `url` | `str` | 无 | 目标url |
| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
| `timeout` | `float` | `None` | 加载超时时间(秒) |
| `**kwargs` | - | `None` | 连接所需其它参数,具体见 requests 用法 |
- `url`:目标 url | 返回类型 | 说明 |
- `show_errmsg`:是否显示和抛出异常,默认不抛出,连接错误会返回`None` |:------:| ----- |
- `retry`:重试次数,与页面对象的设置一致,默认 3 次 | `bool` | 否连接成功 |
- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
- `timeout`:连接超时时间(秒)
- `**kwargs`:连接参数,具体见 requests 用法
返回:`bool`类型,表示是否连接成功,根据`Response`对象的`status_code`参数决定 `**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。
s 模式的`**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。
就是说,如果想继续使用配置中的`headers`信息,而只想修改其中一项,只需要传入该项的值即可。这样可以简化代码逻辑。 就是说,如果想继续使用配置中的`headers`信息,而只想修改其中一项,只需要传入该项的值即可。这样可以简化代码逻辑。
与 requests 不一样,`get()`方法不返回`Response`对象以获取结果,处理返回结果的方式详见后面章节。 与 requests 不一样,`get()`方法不返回`Response`对象以获取结果,处理返回结果的方式详见后面章节。
@ -105,15 +110,20 @@ page.get(url, headers=headers, cookies=cookies, proxies=proxies)
此方法是用 post 方式请求页面。用法与`get()`一致。调用时,`WebPage`对象会自动切换到 s 模式。 此方法是用 post 方式请求页面。用法与`get()`一致。调用时,`WebPage`对象会自动切换到 s 模式。
参数: | 参数名称 | 类型 | 默认值 | 说明 |
|:-------------:|:---------------:|:-------:| --------------------------- |
| `url` | `str` | 无 | 目标url |
| `data` | `dict`<br>`str` | `None` | 提交的数据 |
| `json` | `dict`<br>`str` | `None` | 提交的数据 |
| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
| `timeout` | `float` | `None` | 加载超时时间(秒) |
| `**kwargs` | - | `None` | 连接所需其它参数,具体见 requests 用法 |
- `url`:目标 url | 返回类型 | 说明 |
- `data`:提交的数据,可以是`dict``str`类型 |:------:| ----- |
- `json`:提交的数据,可以是`dict``str`类型 | `bool` | 否连接成功 |
- `show_errmsg`:是否显示和抛出异常,默认不抛出,连接错误会返回`None`
- `retry`:重试次数,与页面对象的设置一致,默认 3 次
- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
- `**kwargs`:连接参数,具体见 requests 用法
```python ```python
from DrissionPage import WebPage from DrissionPage import WebPage

View File

@ -9,14 +9,16 @@
- 根据 DOM 结构相对定位 - 根据 DOM 结构相对定位
- 根据页面布局位置相对定位 - 根据页面布局位置相对定位
d 模式的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。 浏览器的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。
# ✔️ 示例 # ✔️ 示例
先看一些示例,感性认识一下,后面在详细讲解用法。 先看一些示例,后面在详细讲解用法。
## 📍 简单示例 ## 📍 简单示例
假设有这样一个页面:
```html ```html
<html> <html>
<body> <body>
@ -32,7 +34,7 @@ d 模式的元素还有专门用于处理 shadow dom 的`shadow_root`属性。
</html> </html>
``` ```
假设 page 为以上页面的`WebPage`对象,我们可以用这些方法获取其中的元素: 我们用页面对象去获取其中的元素:
```python ```python
# 获取 id 为 one 的元素 # 获取 id 为 one 的元素
@ -90,7 +92,7 @@ for i in titles:
智能硬件 智能硬件
IOT/物联网/边缘计算 IOT/物联网/边缘计算
车载应用 车载应用
以下省略…… ……
""" """
``` ```

View File

@ -198,7 +198,7 @@ page.download_set.by_browser()
| `timeout` | `int`<br>`float` | `None` | 等待下载开始的超时时间,为`None`则使用页面对象`timeout`属性 | | `timeout` | `int`<br>`float` | `None` | 等待下载开始的超时时间,为`None`则使用页面对象`timeout`属性 |
| 返回类型 | 说明 | | 返回类型 | 说明 |
| ------ | -------- | |:------:| -------- |
| `bool` | 是否等到下载开始 | | `bool` | 是否等到下载开始 |
**示例:** **示例:**
@ -371,9 +371,7 @@ xxx.pdf
!>**注意:**<br>这个方式在多线程下载时要慎用,万一多个任务下载多个同名文件,会导致互相覆盖的现象。 !>**注意:**<br>这个方式在多线程下载时要慎用,万一多个任务下载多个同名文件,会导致互相覆盖的现象。
?>**Tips**<br>除了整体设置,还可以在创建任务时单独设置该任务的处理方式。 ?>**Tips**<br>- 除了整体设置,还可以在创建任务时单独设置该任务的处理方式。<br>- 文件名如遇到`'?'``'\'`等非法字符,会自动替换为空格。
?>**Tips**<br>文件名如遇到`'?'``'\'`等非法字符,会自动替换为空格。
## 📍 设置大文件是否分块 ## 📍 设置大文件是否分块