DrissionPage/docs/启动配置/Session启动配置.md
2023-01-27 23:54:45 +08:00

3.7 KiB
Raw Blame History

SessionOptions对象用于管理Session对象连接配置。
其使用逻辑与DriverOptions相似。

!> 注意:
SessionOptions仅用于管理启动配置,程序启动后再修改无效。

✔️ SessionOptions

SessionOptions对象创建时默认读取默认 ini 文件配置信息,也可手动设置所需信息。
该类的方法支持链式操作。

初始化参数:

  • read_file:是否从默认 ini 文件中读取配置信息
  • ini_pathini 文件路径,为None则读取默认 ini 文件

📍 headers

该属性返回headers设置信息,可传入字典赋值。

📍 set_headers()

该方法与headers参数赋值功能一致。

参数:

  • headersheaders字典

返回: 当前对象

📍 set_a_header()

该方法用于设置headers中的一个项。

参数:

  • attr:设置项名称
  • value:设置值

返回: 当前对象

so = SessionOptions()
so.set_a_header('accept', 'text/html')
so.set_a_header('Accept-Charset', 'GB2312')

print(so.headers)

输出:

{'accept': 'text/html', 'accept-charset': 'GB2312'}

📍 remove_a_header()

此方法用于从headers中移除一个设置项。

参数:

  • attr:要删除的设置名称

返回: 当前对象

📍 set_timeout()

此方法用于设置超时属性。

参数:

  • second:秒数

返回: 当前对象

📍 cookies

此属性返回cookies设置信息,可赋值。
可接收dictlisttuplestrRequestsCookieJar等格式的信息。

📍 proxies

此属性返回代理信息,可赋值。可传入字典类型。
格式:{'http': 'http://xx.xx.xx.xx:xxxx', 'https': 'http://xx.xx.xx.xx:xxxx'}

📍 set_proxies()

此方法与proxies属性赋值功能一致。

参数:

  • proxiesdict格式的代理参数

返回: 当前对象

📍 auth

此属性用于返回和设置auth参数,接收tuple类型参数。

📍 hooks

此属性用于返回和设置hooks参数,接收dict类型参数。

📍 params

此属性用于返回和设置params参数,接收dict类型参数。

📍 verify

此属性用于返回和设置verify参数,接收bool类型参数。

📍 cert

此属性用于返回和设置cert参数,接收strtuple类型参数。

📍 adapters

此属性用于返回和设置adapters参数。

📍 stream

此属性用于返回和设置stream参数,接收bool类型参数。

📍 trust_env

此属性用于返回和设置trust_env参数,接收bool类型参数。

📍 max_redirects

此属性用于返回和设置max_redirects参数,接收int类型参数。

📍 save()

此方法用于保存当前配置对象的信息到配置文件。

参数:

  • path:配置文件的路径,默认保存到当前读取的配置文件,传入'default'保存到默认 ini 文件

返回: 配置文件绝对路径

📍 save_to_default()

此方法用于保存当前配置对象的信息到默认 ini 文件。

参数:

返回: 配置文件绝对路径

📍 as_dict()

该方法以dict方式返回所有配置信息。

参数:

返回: 配置信息

✔️ 简单示例

from DrissionPage import WebPage, SessionOptions

# 创建配置对象(默认从 ini 文件中读取配置)
so = SessionOptions()
# 设置 cookies
so.cookies = ['key1=val1; domain=xxxx', 'key2=val2; domain=xxxx']
# 设置 headers 一个参数
so.set_a_header('Connection', 'keep-alive')

# 以该配置创建页面对象
page = WenPage(mode='s', session_or_options=so)