【爬虫】DrissionPage-7
官方文档:
https://www.drissionpage.cn/browser_control/get_page_info/
1. 页面信息
📌 html
- 描述:返回当前页面的 HTML 文本。
- 注意:不包含
<iframe>
元素的内容。 - 返回类型:
str
示例:
html_content = tab.html
print(html_content)
📌 json
- 描述:将请求内容解析为 JSON 格式。如果访问的 URL 返回的是
*.json
文件,浏览器会直接显示 JSON 数据,此属性可以将这些数据转换为dict
格式。 - 返回类型:
dict
示例:
json_data = tab.json
print(json_data)
📌 title
- 描述:返回当前页面的标题文本。
- 返回类型:
str
示例:
page_title = tab.title
print(page_title)
📌 user_agent
- 描述:返回当前页面的
user agent
信息。 - 返回类型:
str
示例:
user_agent_info = tab.user_agent
print(user_agent_info)
📌 save()
-
描述:将当前页面保存为文件,同时返回保存的内容。如果
path
和name
参数都为None
,则只返回内容,不保存文件。 -
参数:
参数名称 类型 默认值 说明 path
str
/Path
None
保存路径。如果为 None
且name
不为None
,则保存到当前路径。name
str
None
保存的文件名。如果为 None
且path
不为None
,则使用title
值。as_pdf
bool
False
为 True
时保存为 PDF,否则保存为 MHTML,并忽略kwargs
参数。**kwargs
多种 无 PDF 生成参数,如 landscape
,displayHeaderFooter
,printBackground
等。 -
返回类型:
类型 说明 str
当 as_pdf
为False
时返回 MHTML 文本。bytes
当 as_pdf
为True
时返回文件字节数据。
示例:
# 保存为 PDF
pdf_data = tab.save(as_pdf=True, path='path/to/save', name='page.pdf')# 保存为 MHTML
mhtml_content = tab.save(path='path/to/save', name='page.mhtml')
2. 运行结果信息
📌 url
- 描述:返回当前访问的 URL。
- 返回类型:
str
示例:
current_url = tab.url
print(current_url)
📌 tab_id
- 描述:返回当前标签页的 ID。
- 返回类型:
str
📌 states.is_loading
- 描述:返回页面是否正在加载状态。
- 返回类型:
bool
示例:
is_loading = tab.states.is_loading
print(is_loading)
📌 states.is_alive
- 描述:返回页面是否仍然可用,标签页已关闭则返回
False
。 - 返回类型:
bool
示例:
is_alive = tab.states.is_alive
print(is_alive)
📌 states.ready_state
-
描述:返回页面当前加载状态,有以下四种:
'connecting'
:网页连接中'loading'
:文档还在加载中'interactive'
:DOM 已加载,但资源未加载完成'complete'
:所有内容已完成加载
-
返回类型:
str
示例:
ready_state = tab.states.ready_state
print(ready_state)
📌 url_available
- 描述:以布尔值返回当前链接是否可用。
- 返回类型:
bool
📌 states.has_alert
- 描述:以布尔值返回页面是否存在弹出框。
- 返回类型:
bool
示例:
has_alert = tab.states.has_alert
print(has_alert)
3. 窗口信息
📌 rect.size
- 描述:以
tuple
返回页面大小,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
示例:
page_size = tab.rect.size
print(page_size)
📌 rect.window_size
- 描述:以
tuple
返回窗口大小,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.window_location
- 描述:以
tuple
返回窗口在屏幕上的坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.window_state
- 描述:返回窗口当前状态,有
'normal'
、'fullscreen'
、'maximized'
、'minimized'
几种。 - 返回类型:
str
示例:
window_state = tab.rect.window_state
print(window_state)
📌 rect.viewport_size
- 描述:以
tuple
返回视口大小,不含滚动条,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.viewport_size_with_scrollbar
- 描述:以
tuple
返回浏览器窗口大小,含滚动条,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.page_location
- 描述:以
tuple
返回页面左上角在屏幕中坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.viewport_location
- 描述:以
tuple
返回视口在屏幕中坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.scroll_position
- 描述:返回页面滚动条位置,格式为
(x, y)
。 - 类型:
Tuple[float, float]
示例:
scroll_position = tab.rect.scroll_position
print(scroll_position)
4. 配置参数信息
📌 timeout
- 描述:整体默认超时时间(秒),包括元素查找、点击、处理提示框、列表选择等需要用到超时设置的地方,都以这个数据为默认值。默认为
10
。 - 返回类型:
int
或float
示例:
default_timeout = tab.timeout
print(default_timeout)
📌 timeouts
-
描述:以字典方式返回三种超时时间(秒):
'base'
:与timeout
属性是同一个值'page_load'
:用于等待页面加载'script'
:用于等待脚本执行
-
返回类型:
dict
示例:
timeouts_info = tab.timeouts
print(timeouts_info)
输出:
{'base': 10, 'page_load': 30.0, 'script': 30.0}
📌 retry_times
- 描述:网络连接失败时的重试次数,默认为
3
。 - 返回类型:
int
📌 retry_interval
- 描述:网络连接失败时的重试等待间隔秒数,默认为
2
。 - 返回类型:
int
或float
📌 load_mode
-
描述:返回页面加载策略,有以下三种:
'normal'
:等待页面所有资源完成加载'eager'
:DOM 加载完成即停止'none'
:页面完成连接即停止
-
返回类型:
str
示例:
load_strategy = tab.load_mode
print(load_strategy)
5. Cookies 和缓存信息
📌 cookies()
-
描述:以列表方式返回 Cookies 信息。
-
参数:
参数名称 类型 默认值 说明 all_domains
bool
False
是否返回所有 Cookies,为 False
只返回当前 URL 的。all_info
bool
False
返回的 Cookies 是否包含所有信息, False
时只包含name
、value
、domain
信息。 -
返回类型:
CookiesList
(Cookies 组成的列表)
示例:
from DrissionPage import Chromiumtab = Chromium().latest_tab
tab.get('https://www.baidu.com')for cookie in tab.cookies():print(cookie)
输出:
{'domain': '.baidu.com', 'domain_specified': True, ......}
......
📌 指定返回类型
cookies().as_str()
:返回'name1=value1; name2=value2'
格式的字符串。cookies().as_dict()
:返回{name1: value1, name2: value2}
格式的字典。cookies().as_json()
:返回 JSON 格式的字符串。
说明: as_str()
和 as_dict()
都只会保留 'name'
和 'value'
字段。
示例:
cookies_str = tab.cookies().as_str()
print(cookies_str)cookies_dict = tab.cookies().as_dict()
print(cookies_dict)cookies_json = tab.cookies().as_json()
print(cookies_json)
📌 session_storage()
-
描述:用于获取
sessionStorage
信息,可获取全部或单个项。 -
参数:
参数名称 类型 默认值 说明 item
str
None
要获取的项目,为 None
则返回全部项目组成的字典。 -
返回类型:
类型 说明 dict
item
参数为None
时返回所有项目。str
指定 item
时返回该项目内容。
示例:
session_storage_info = tab.session_storage()
print(session_storage_info)session_storage_item = tab.session_storage(item='key_name')
print(session_storage_item)
📌 local_storage()
-
描述:用于获取
localStorage
信息,可获取全部或单个项。 -
参数:
参数名称 类型 默认值 说明 item
str
None
要获取的项目,为 None
则返回全部项目组成的字典。 -
返回类型:
类型 说明 dict
item
参数为None
时返回所有项目。str
指定 item
时返回该项目内容。
示例:
local_storage_info = tab.local_storage()
print(local_storage_info)local_storage_item = tab.local_storage(item='key_name')
print(local_storage_item)