🚄 启动配置
本节介绍SessionPage
的启动配置。
我们用SessionOptions
对象管理SessionPage
对象初始配置。
注意
SessionOptions
仅用于管理启动配置,程序启动后再修改无效。
✅️️ 创建对象
📌 导入
from DrissionPage import SessionOptions
📌 初始化参数
SessionOptions
对象用于管理Session
对象的初始化配置。可从配置文件中读取配置来进行初始化。
初始化参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
read_file | bool | True | 是否从 ini 文件中读取配置信息,为False 则用默认配置创建 |
ini_path | Path str | None | 指定 ini 文件路径,为None 则读取内置 ini 文件 |
创建配置对象:
from DrissionPage import SessionOptions
so = SessionOptions()
默认情况下,SessionOptions
对象会从 ini 文件中读取配置信息,当指定read_file
参数为False
时,则以默认配置创建。
提醒
对象创建时已带有默认 headers,如要清除,可调用clear_headers()
方法。
✅️️ 使用方法
创建配置对象后,可调整配置内容,然后在页面对象创建时以参数形式把配置对象传递进去。
from DrissionPage import SessionPage, SessionOptions
# 创建配置对象(默认从 ini 文件中读取配置)
so = SessionOptions()
# 设置代理
so.set_proxies('http://localhost:1080')
# 设置 cookies
cookies = ['key1=val1; domain=****', 'key2=val2; domain=****']
so.set_cookies(cookies)
# 以该配置创建页面对象
page = SessionPage(session_or_options=so)
✅️️ 用于设置的方法
📌 set_headers()
该方法用于设置整个 headers 参数,传入值会覆盖原来的 headers。
headers 可以是dict
格式的,也可以是文本格式。
文本格式不同字段用\n
分隔,字段 key 和 value 用': '
分隔,即从浏览器直接复制的格式。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
headers | dict str | 必填 | headers 信息 |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
示例:
so.set_headers = {'user-agent': 'Mozilla/5.0 (Macint...', 'connection': 'keep-alive' ...}
📌 set_a_header()
该方法用于设置headers
中的一个项。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
name | str | 必填 | 设置名称 |
value | str | 必填 | 设置值 |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
示例:
so.set_a_header('accept', 'text/html')
so.set_a_header('Accept-Charset', 'GB2312')
输出:
{'accept': 'text/html', 'accept-charset': 'GB2312'}
📌 remove_a_header()
此方法用于从headers
中移除一个设置项。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
name | str | 必填 | 要删除的设置 |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
示例:
so.remove_a_header('accept')
📌 clear_headers()
此方法用于清空已设置的headers
参数。
参数: 无
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象自身 |
📌 set_cookies()
此方法用于设置一个或多个 cookie,每次设置会覆盖之前所有 cookies 信息。
详细用法见实用教程相关章节。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
cookies | Cookie CookieJar list tuple str dict | 必填 | cookies |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
示例:
cookies = ['key1=val1; domain=****', 'key2=val2; domain=****']
so.set_cookies(cookies)
📌 set_timeout()
此方法用于设置连接超时属性。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
second | float | 必填 | 连接等待秒数 |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
📌 set_retry()
此方法用于设置页面连接超时时的重试次数和间隔。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
times | int | None | 连接失败重试次数 |
interval | float | None | 连接失败重试间隔(秒) |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
📌 retry_times
该属性返回连接失败时的重试次数。
类型:int
📌 retry_interval
该属性返回连接失败时的重试间隔(秒)。
类型:float
📌 set_proxies()
此方法用于设置代理信息。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
http | str | 必填 | http 代理地址 |
https | str | None | https 代理地址,为None 时使用http 参数的值 |
返回类型 | 说明 |
---|---|
SessionOptions | 配置对象本身 |
示例:
so.set_proxies('http://127.0.0.1:1080')
📌 set_download_path()
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | str Path | 必填 | 默认下载保存路径 |
返回类型 |
---|