diff --git a/docs/WebPage使用方法/3.10动作链.md b/docs/WebPage使用方法/3.10动作链.md index b89a64b..32ee6ce 100644 --- a/docs/WebPage使用方法/3.10动作链.md +++ b/docs/WebPage使用方法/3.10动作链.md @@ -56,7 +56,7 @@ ac = ActionChains(page) | `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 使鼠标移动到 ele 元素上 @@ -76,7 +76,7 @@ ac.move_to(ele_or_loc=ele) | `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 鼠标向右移动 300 像素 @@ -94,7 +94,7 @@ ac.move(300, 0) | `pixel` | `int` | 无 | 鼠标移动的像素值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 鼠标向上移动 50 像素 @@ -112,7 +112,7 @@ ac.up(50) | `pixel` | `int` | 无 | 鼠标移动的像素值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -130,7 +130,7 @@ ac.down(50) | `pixel` | `int` | 无 | 鼠标移动的像素值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -148,7 +148,7 @@ ac.left(50) | `pixel` | `int` | 无 | 鼠标移动的像素值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -168,7 +168,7 @@ ac.right(50) | `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -186,7 +186,7 @@ ac.click('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -204,7 +204,7 @@ ac.r_click('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -222,7 +222,7 @@ ac.m_click('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -240,7 +240,7 @@ ac.hold('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 移动到某元素上然后释放鼠标左键 @@ -258,7 +258,7 @@ ac.release('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | ## 📍 `r_release()` @@ -270,7 +270,7 @@ ac.release('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | ## 📍 `m_hold()` @@ -282,7 +282,7 @@ ac.release('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | ## 📍 `m_release()` @@ -294,7 +294,7 @@ ac.release('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 | | 类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | # ✔ 滚动滚轮 @@ -310,7 +310,7 @@ ac.release('#div1') | `on_ele` | `ChromiumElement`
`str` | `None` | 要滚动的元素对象或文本定位符 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | # ✔ 键盘按键 @@ -324,7 +324,7 @@ ac.release('#div1') | `key` | `str` | 无 | 按键键值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 按下 ctrl 键 @@ -344,7 +344,7 @@ ac.key_down(Keys.CTRL) | `key` | `str` | 无 | 按键键值 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 提起 ctrl 键 @@ -364,7 +364,7 @@ ac.key_up(Keys.CTRL) | `text` | `str` | 无 | 要输入的文本 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** @@ -384,7 +384,7 @@ ac.type('text') | `second` | `float` | 无 | 等待秒数 | | 返回类型 | 说明 | -| -------------- | ------- | +|:--------------:| ------- | | `ActionChains` | 动作链对象本身 | **示例:** 停顿 3 秒 diff --git a/docs/WebPage使用方法/3.2访问网页.md b/docs/WebPage使用方法/3.2访问网页.md index a79ab98..1753e3d 100644 --- a/docs/WebPage使用方法/3.2访问网页.md +++ b/docs/WebPage使用方法/3.2访问网页.md @@ -1,24 +1,27 @@ -本节介绍如果访问网页。 +本节介绍如何访问网页。 -# ✔️ d 模式 +# ✔️ 浏览器访问网页 -d 模式下使用`get()`方法访问网页。 +`ChromiumPage`和`WebPage`的 d 模式用于控制浏览器,使用`get()`方法访问网页。 ## 📍 `get()`方法 该方法用于跳转到一个网址。 当连接失败时,程序默认重试 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 次 -- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒 -- `timeout`:连接超时时间(秒) +| 返回类型 | 说明 | +|:------:| ----- | +| `bool` | 否连接成功 | -**返回:**`bool`类型,表示是否连接成功 +**示例:** ```python 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`参数中的值。 ```python @@ -58,27 +61,29 @@ page = WebPage() page.set_page_load_strategy() ``` -# ✔️ s 模式 +# ✔️ 数据包访问网页 -s 模式基于 requests,因此可使用 requests 内置的所有请求方式,包括`get()`、`post()`、`head()`、`options()`、`put()`、`patch()`、`delete()` -。不过本库目前只对`get()`和`post()`做了封装和优化,其余方式可通过调用`WebPage`内置的`Session`对象使用。 +`SessionPage`和`WebPage`的 s 模式基于 requests,因此可使用 requests 内置的所有请求方式,包括`get()`、`post()`、`head()`、`options()`、`put()`、`patch()`、`delete()` +。不过本库目前只对`get()`和`post()`做了封装和优化,其余方式可通过调用页面对象内置的`Session`对象调用。 ## 📍 `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 次 -- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒 -- `timeout`:连接超时时间(秒) -- `**kwargs`:连接参数,具体见 requests 用法 +| 返回类型 | 说明 | +|:------:| ----- | +| `bool` | 否连接成功 | -返回:`bool`类型,表示是否连接成功,根据`Response`对象的`status_code`参数决定 - -s 模式的`**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。 +`**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。 就是说,如果想继续使用配置中的`headers`信息,而只想修改其中一项,只需要传入该项的值即可。这样可以简化代码逻辑。 与 requests 不一样,`get()`方法不返回`Response`对象以获取结果,处理返回结果的方式详见后面章节。 @@ -105,15 +110,20 @@ page.get(url, headers=headers, cookies=cookies, proxies=proxies) 此方法是用 post 方式请求页面。用法与`get()`一致。调用时,`WebPage`对象会自动切换到 s 模式。 -参数: +| 参数名称 | 类型 | 默认值 | 说明 | +|:-------------:|:---------------:|:-------:| --------------------------- | +| `url` | `str` | 无 | 目标url | +| `data` | `dict`
`str` | `None` | 提交的数据 | +| `json` | `dict`
`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`类型 -- `show_errmsg`:是否显示和抛出异常,默认不抛出,连接错误会返回`None` -- `retry`:重试次数,与页面对象的设置一致,默认 3 次 -- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒 -- `**kwargs`:连接参数,具体见 requests 用法 +| 返回类型 | 说明 | +|:------:| ----- | +| `bool` | 否连接成功 | ```python from DrissionPage import WebPage diff --git a/docs/WebPage使用方法/3.3查找元素.md b/docs/WebPage使用方法/3.3查找元素.md index 2b1a44d..4269d0d 100644 --- a/docs/WebPage使用方法/3.3查找元素.md +++ b/docs/WebPage使用方法/3.3查找元素.md @@ -9,14 +9,16 @@ - 根据 DOM 结构相对定位 - 根据页面布局位置相对定位 -d 模式的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。 +浏览器的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。 # ✔️ 示例 -先看一些示例,感性认识一下,后面在详细讲解用法。 +先看一些示例,后面在详细讲解用法。 ## 📍 简单示例 +假设有这样一个页面: + ```html @@ -32,7 +34,7 @@ d 模式的元素还有专门用于处理 shadow dom 的`shadow_root`属性。 ``` -假设 page 为以上页面的`WebPage`对象,我们可以用这些方法获取其中的元素: +我们用页面对象去获取其中的元素: ```python # 获取 id 为 one 的元素 @@ -90,7 +92,7 @@ for i in titles: 智能硬件 IOT/物联网/边缘计算 车载应用 -以下省略…… +…… """ ``` diff --git a/docs/WebPage使用方法/下载文件.md b/docs/WebPage使用方法/下载文件.md index 98f9289..ca1e4c3 100644 --- a/docs/WebPage使用方法/下载文件.md +++ b/docs/WebPage使用方法/下载文件.md @@ -198,7 +198,7 @@ page.download_set.by_browser() | `timeout` | `int`
`float` | `None` | 等待下载开始的超时时间,为`None`则使用页面对象`timeout`属性 | | 返回类型 | 说明 | -| ------ | -------- | +|:------:| -------- | | `bool` | 是否等到下载开始 | **示例:** @@ -371,9 +371,7 @@ xxx.pdf !>**注意:**
这个方式在多线程下载时要慎用,万一多个任务下载多个同名文件,会导致互相覆盖的现象。 -?>**Tips:**
除了整体设置,还可以在创建任务时单独设置该任务的处理方式。 - -?>**Tips:**
文件名如遇到`'?'`、`'\'`等非法字符,会自动替换为空格。 +?>**Tips:**
- 除了整体设置,还可以在创建任务时单独设置该任务的处理方式。
- 文件名如遇到`'?'`、`'\'`等非法字符,会自动替换为空格。 ## 📍 设置大文件是否分块