From 5c55f54dd3fbe76f4fea712a7fb24625920a8b06 Mon Sep 17 00:00:00 2001 From: g1879 Date: Thu, 5 Jan 2023 14:54:30 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WebPage使用方法/3.6获取网页信息.md | 262 ++++++++++++------------ 1 file changed, 134 insertions(+), 128 deletions(-) diff --git a/docs/WebPage使用方法/3.6获取网页信息.md b/docs/WebPage使用方法/3.6获取网页信息.md index df3de94..1ec438a 100644 --- a/docs/WebPage使用方法/3.6获取网页信息.md +++ b/docs/WebPage使用方法/3.6获取网页信息.md @@ -14,23 +14,137 @@ `ChromiumTab`和`ChromiumFrame`具体用法将在后面章节单独介绍。 -# ✔️ 两种模式共有属性 +# ✔️ 运行状态信息 ## 📍 `url` -此属性返回当前访问的 url。 +此属性返回当前访问的 url,两种模式均支持。 + +## 📍 `address` + +此属性返回当前对象控制的页面地址和端口,仅用于 d 模式。 + +```python +print(page.address) +# 输出:127.0.0.1:9222 +``` + +## 📍 `tab_id` + +此属性返回当前标签页的 id,仅用于 d 模式。 ## 📍 `mode` 此属性返回当前页面对象的模式,`'s'`或`'d'`。 +## 📍 `process_id` + +此属性返回浏览器进程 id,仅用于 d 模式。 + +## 📍 `is_loading` + +此属性返回页面是否正在加载状态,仅用于 d 模式。 + +## 📍 `ready_state` + +此属性返回页面当前加载状态,有 3 种:`'loading'`、`'interactive'`、`'complete'`,仅用于 d 模式。 + +## 📍 `url_available` + +此属性以布尔值返回当前链接是否可用,两种模式均支持。 + +# ✔️ 窗口及页面信息 + +## 📍 `size` + +此属性以`tuple`返回页面尺寸,仅用于 d 模式。格式:(宽度, 高度)。 + +## 📍 `tabs_count` + +此属性返回当前浏览器标签页数量,仅用于 d 模式。 + +## 📍 `tabs` + +此属性以列表形式返回当前浏览器所有标签页 id,仅用于 d 模式。 + +## 📍 `html` + +此属性返回当前页面 html 文本,两种模式均支持。 + +## 📍 `json` + +此属性把请求内容解析成 json,两种模式均支持。 +比如请求接口时,返回内容是 json 格式,那就可以用这个属性获取。 +事实上,用`html`属性获取也是可以的,不过`html`属性没有对文本进行解析。 + +## 📍 `title` + +此属性返回当前页面`title`文本,两种模式均支持。 + +# ✔️ 配置参数信息 + +## 📍 `timeout` + +s 模式下,此属性代表网络请求超时时间。 +d 模式下,此属性为元素查找、点击、处理提示框等操作的超时时间。 +默认为 10,可对其赋值。 + +```python +# 创建 MixPage 对象时指定 +page = WebPage(timeout=5) + +# 修改 timeout +page.timeout = 20 +``` + +## 📍 `timeouts` + +此属性以字典方式返回三种超时时间,仅用于 d 模式。 +`'implicit'`用于元素查找、点击重试、输入文本重试、处理弹出框重试等; +`'page_load'`用于等待页面加载; +`'script'`用于等待脚本执行。 + +```python +print(page.timeouts) +``` + +输出: + +``` +{'implicit': 10, 'pageLoad': 30.0, 'script': 30.0} +``` + +## 📍 `retry_times` + +此属性为网络连接失败时的重试次数。默认为 3,可对其赋值,两种模式均支持。 + +```python +# 修改重试次数 +page.retry_times = 5 +``` + +## 📍 `retry_interval` + +此属性为网络连接失败时的重试等待间隔秒数。默认为 2,可对其赋值,两种模式均支持。 + +```python +# 修改重试等待间隔时间 +page.retry_interval = 1.5 +``` + +## 📍 `page_load_strategy` + +此属性返回页面加载策略,有 3 种:`'none'`、`'normal'`、`'eager'`,仅用于 d 模式。 + +# ✔️ cookies 和缓存信息 + ## 📍 `cookies` -此属性以`dict`方式返回当前页面所使用的 cookies。 +此属性以`dict`方式返回当前页面所使用的 cookies,两种模式均支持。 ## 📍 `get_cookies()` -此方法获取 cookies 并以 cookie 组成的`list`形式返回。 +此方法获取 cookies 并以 cookie 组成的`list`形式返回,两种模式均支持。 **参数:** @@ -59,65 +173,35 @@ for i in p.get_cookies(as_dict=False, all_domains=True): ...... ``` -## 📍 `html` +## 📍 `get_session_storage()` -此属性返回当前页面 html 文本。 +此方法用于获取 sessionStorage 信息,可获取全部或单个项,仅用于 d 模式。 -## 📍 `json` +**参数:** -此属性把请求内容解析成 json。 -比如请求接口时,返回内容是 json 格式,那就可以用这个属性获取。 -事实上,用 html 属性获取也是可以的,不过 html 属性没有对文本进行解析。 +- `item`:要获取的项,不设置则返回全部 -## 📍 `title` +**返回:** sessionStorage 一个或所有项内容 -此属性返回当前页面`title`文本。 +## 📍 `get_local_storage()` -## 📍 `timeout` +此方法用于获取 localStorage 信息,可获取全部或单个项,仅用于 d 模式。 -s 模式下,此属性代表网络请求超时时间。 -d 模式下,此属性为元素查找、点击、处理提示框等操作的超时时间。 -默认为 10,可对其赋值。 +**参数:** -```python -# 创建 MixPage 对象时指定 -page = WebPage(timeout=5) +- `item`:要获取的项,不设置则返回全部 -# 修改 timeout -page.timeout = 20 -``` +**返回:** localStorage 一个或所有项内容 -## 📍 `retry_times` - -此参数为网络连接失败时的重试次数。默认为 3,可对其赋值。 - -```python -# 修改重试次数 -page.retry_times = 5 -``` - -## 📍 `retry_interval` - -此参数为网络连接失败时的重试等待间隔秒数。默认为 2,可对其赋值。 - -```python -# 修改重试等待间隔时间 -page.retry_interval = 1.5 -``` - -## 📍 `url_available` - -此属性以布尔值返回当前链接是否可用。 - -# ✔️ s 模式独有属性 +# ✔️ 内嵌对象 ## 📍 `session` -此属性返回当前页面对象使用的`Session`对象。 +此属性返回当前页面对象使用的`Session`对象,仅用于 s 模式。 ## 📍 `response` -此属性为 s 模式请求网站后生成的`Response`对象,本库没实现的功能可直接获取此属性调用 requests 库的原生功能。 +此属性为 s 模式请求网站后生成的`Response`对象,本库没实现的功能可直接获取此属性调用 requests 库的原生功能,仅用于 s 模式。 ```python # 打印连接状态 @@ -125,73 +209,15 @@ r = page.response print(r.status_code) ``` -# ✔️ d 模式独有属性 - -## 📍 `tab_id` - -此属性返回当前标签页的 id。 - -## 📍 `address` - -此属性返回当前对象控制的页面地址和端口。 - -```python -print(page.address) -# 输出:127.0.0.1:9222 -``` - ## 📍 `driver` -此属性返回当前页面对象使用的`ChromiumDriver`对象。 +此属性返回当前页面对象使用的`ChromiumDriver`对象,仅用于 d 模式。 -## 📍 `process_id` - -此属性返回浏览器进程 id。 - -## 📍 `is_loading` - -此属性返回页面是否正在加载状态。 - -## 📍 `ready_state` - -此属性返回页面当前加载状态,有 3 种:`'loading'`、`'interactive'`、`'complete'`。 - -## 📍 `page_load_strategy` - -此属性返回页面加载策略,有 3 种:`'none'`、`'normal'`、`'eager'`。 - -## 📍 `size` - -此属性以`tuple`返回页面尺寸。格式:(宽度, 高度)。 - -## 📍 `timeouts` - -此属性以字典方式返回三种超时时间。 -`'implicit'`用于元素查找、点击重试、输入文本重试、处理弹出框重试等; -`'page_load'`用于等待页面加载; -`'script'`用于等待脚本执行。 - -```python -print(page.timeouts) -``` - -输出: - -``` -{'implicit': 10, 'pageLoad': 30.0, 'script': 30.0} -``` - -## 📍 `tabs_count` - -此属性返回当前浏览器标签页数量。 - -## 📍 `tabs` - -此属性以列表形式返回当前浏览器所有标签页 id。 +# ✔️ 页面截图 ## 📍 `get_screenshot()` -此方法用于对页面进行截图,可对整个网页、可见网页、指定范围截图。对可视范围外截图需要90以上版本浏览器支持。 +此方法用于对页面进行截图,可对整个网页、可见网页、指定范围截图。对可视范围外截图需要90以上版本浏览器支持,仅用于 d 模式。 **参数:** @@ -211,23 +237,3 @@ print(page.timeouts) # 对整页截图并保存 page.get_screenshot(path='D:\\page.png', full_page=True) ``` - -## 📍 `get_session_storage()` - -此方法用于获取 sessionStorage 信息,可获取全部或单个项。 - -**参数:** - -- `item`:要获取的项,不设置则返回全部 - -**返回:** sessionStorage 一个或所有项内容 - -## 📍 `get_local_storage()` - -此方法用于获取 localStorage 信息,可获取全部或单个项。 - -**参数:** - -- `item`:要获取的项,不设置则返回全部 - -**返回:** localStorage 一个或所有项内容