🛰️ 浏览器启动设置
浏览器的启动配置非常繁杂,本库使用ChromiumOptions类管理启动配置,并且内置了常用配置的设置接口。
该对象只能用于浏览器的启动,浏览器启动后,再修改该配置没有任何效果。接管已打开的浏览器时,启动配置也是无效的。
✅️️ 创建对象
📌 导入
from DrissionPage import ChromiumOptions
📌 初始化参数
ChromiumOptions对象用于管理浏览器初始化配置。可从配置文件中读取配置来进行初始化。
| 初始化参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
read_file | bool | True | 是否从 ini 文件中读取配置信息,为False则用默认配置创建 |
ini_path | Pathstr | None | 指定 ini 文件路径,为None则读取内置 ini 文件 |
创建配置对象:
from DrissionPage import ChromiumOptions
co = ChromiumOptions()
默认情况下,ChromiumOptions对象会从 ini 文件中读取配置信息,当指定read_file参数为False时,则以默认配置创建。
对象创建时已带有默认设置,如要清除,可调用clear_arguments()、clear_prefs()等方法。
✅️️ 使用方法
创建配置对象后,可调整配置内容,然后在页面对象创建时以参数形式把配置对象传递进去,页面对象会根据配置对象的内容对浏览器进行初始化。
配置对象支持链式操作。
from DrissionPage import Chromium, ChromiumOptions
# 创建配置对象(默认从 ini 文件中读取配置)
co = ChromiumOptions()
# 设置不加载图片、静音
co.no_imgs(True).mute(True)
# 以该配置创建页面对象
page = Chromium(addr_or_opts=co)
from DrissionPage import Chromium, ChromiumOptions
co = ChromiumOptions()
co.incognito() # 匿名模式
co.headless() # 无头模式
co.set_argument('--no-sandbox') # 无沙盒模式
page = Chromium(co)
✅️️ 命令行参数设置
Chromium 内核浏览器有一系列的启动配置,以--开头,可在浏览器创建时传入,控制浏览器行为和初始状态。
启动参数非常多,详见:List of Chromium Command Line Switches
📌 set_argument()
此方法用于设置启动参数。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
arg | str | 必填 | 启动参数名称 |
value | strNoneFalse | None | 参数的值。带值的参数传入属性值,没有值的传入None。如传入 False,删除该 参数。 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
示例: 无值和有值的参数设置
# 设置启动时最大化
co.set_argument('--start-maximized')
# 设置初始窗口大小
co.set_argument('--window-size', '800,600')
# 使用来宾模式打开浏览器
co.set_argument('--guest')
📌 remove_argument()
此方法用于在启动配置中删除一个启动参数,只要传入参数名称即可,不需要传入值。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
arg | str | 必填 | 参数名称,有值的设置项传入设置名称即可 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象自身 |
示例: 删除无值和有值的参数设置
# 删除--start-maximized参数
co.remove_argument('--start-maximized')
# 删除--window-size参数
co.remove_argument('--window-size')
📌 clear_arguments()
此方法用于清空已设置的arguments参数。
参数: 无
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象自身 |
✅️️ 运行路径及端口
这部分是浏览器路径、用户文件夹路径和端口的设置。
📌 set_browser_path()
此方法用于设置浏览器可执行文件路径。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | strPath | 必填 | 浏览器文件路径 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
如果传入的字符串不是浏览器可执行文件路径,则会转为使用默认路径。
📌 set_tmp_path()
此方法用于设置临时文件默认路径。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | strPath | 必填 | 用户数据文件夹默认路径 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 set_local_port()
此方法用于设置本地启动端口。
与set_address()、auto_port()互斥。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
port | strint | 必填 | 端口号 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 set_address()
此方法用于设置浏览器地址,支持 'ip:port' 格式和 ws 连接。
和set_local_port()、auto_port()互斥。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
address | str | 必填 | 浏览器地址 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 auto_port()
此方法用于设置是否使用自动分配的端口,启动一个全新的浏览器。
如果设置为True,程序会自动寻找一个可用端口,并在指定路径或系统临时文件夹创建一个文件夹,用于储存浏览器 数据。
由于端口和用户文件夹都是唯一的,所以用这种方式启动的浏览器不会产生冲突,但也无法多次启动程序时重复接管同一个浏览器。
set_local_port()、set_address()和set_user_data_path()方法,和auto_port()互斥,即以后调用的为准。
auto_port()支持多线程,但不支持多进程。
多进程使用时,可用scope参数指定每个进程使用的端口范围,以免发生冲突。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
on_off | bool | True | 是否开启自动分配端口和用户文件夹 |
scope | Tuple[int, int] | None | 指定端口范围,不含最后的数字,为None则使用[9600-19600) |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
示例:
co.auto_port(True)
启用此功能后即会获取端口和新建临时用户数据文件夹,若此时用save()方法保存配置到 ini 文件,ini 文件中的设置会被该端口和文件夹路径覆盖。这个覆盖对使用并没有很大影响。
📌 set_user_data_path()
此方法用于设置用户文件夹路径。用户文件夹用于存储当前登陆浏览器的账号在使用浏览器时留下的痕迹,包括设置选项等。
一般来说用户文件夹的名称是 User Data。对于默认情况下的 Windows 中的 Chrome 浏览器来说,此文件夹位于 %USERPROFILE%\AppData\Local\Google\Chrome\User Data\,也就是当前系统登陆的用户目录的 AppData 内。实际情况可能有变,实际路径请在浏览器输入 chrome://version/,查阅其中的个人资料路径或者叫用户配置路径。若要使用独立的用户信息,可以将 User Data 目录整个复制到自定的其他位置,然后在代码中使用 set_user_data_path() 方法,参数填入自定义位置路径,这样便可使用独立的用户文件夹信息。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | strPath | 必填 | 用户文件夹路径 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 use_system_user_path()
此方法设置是否使用系统安装的浏览器默认用户文件夹
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
on_off | bool | True | bool表示开关 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 set_cache_path()
此方法用于设置缓存路径。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | strPath | 必填 | 缓存路径 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
📌 existing_only()
此方法设置是否仅使用已 启动的浏览器,如连接目标浏览器失败,会抛出异常,不会启动新浏览器。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
on_off | bool | True | bool表示开关 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
✅️️ 使用插件
add_extension()和remove_extensions()用于设置浏览器启动时要加载的插件。可以指定数量不限的插件。
📌 add_extension()
此方法用于添加一个插件到浏览器。
插件是临时方式加载,不会保留在用户文件夹。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | strPath | 必填 | 插件路径 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
根据作者的经验,把插件文件解压到一个独立文件夹,然后把插件路径指向这个文件夹,会比较稳定。
示例:
co.add_extension(r'D:\SwitchyOmega')
📌 remove_extensions()
此方法用于移除配置对象中保存的所有插件路径。如需移除部分插件,请移除全部后再重新添加需要的插件。
参数: 无
返回: 配置对象自身
co.remove_extensions()
✅️️ 用户文件设置
除了启动参数,还有大量配置信息保存在浏览器的 preferences 文件中。
preferences 文件是Chromium内核浏览器的配置信息文件,与 DrissionPage 的 configs.ini 完全不同。
以下方法用于对浏览器用户文件进行设置。
📌 set_user()
Chromium 浏览器支持多用户配置,我们可以选择使用哪一个。默认为'Default'。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
user | str | 'Default' | 用户配置文件夹名 称 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
示例:
co.set_user(user='Profile 1')
📌 set_pref()
此方法用于设置用户配置文件里的一个配置项。
在哪里可以查到所有的配置项?作者也没找到,知道的请告知。谢谢。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
arg | str | 必填 | 设置项名称 |
value | str | 必填 | 设置项值 |
| 返回类型 | 说明 |
|---|---|
ChromiumOptions | 配置对象本身 |
示例:
# 禁止所有弹出窗口
co.set_pref(arg='profile.default_content_settings.popups', value='0')
# 隐藏是否保存密码的提示
co.set_pref('credentials_enable_service', False)
📌 remove_pref()
此方法用于在当前配置对象中删除一个pref配置项。
| 参数名称 | 类型 |
|---|