🛰️ 浏览器启动设置
浏览器的启动配置非常繁杂,本库使用ChromiumOptions
类管理启动配置,并且内置了常用配置的设置接口。
该对象只能用于浏览器的启动,浏览器启动后,再修改该配置没有任何效果。接管已打开的浏览器时,启动配置也是无效的。
✅️️ 创建对象
📌 导入
from DrissionPage import ChromiumOptions
📌 初始化参数
ChromiumOptions
对象用于管理浏览器初始化配置。可从配置文件中读取配置来进行初始化。
初始化参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
read_file | bool | True | 是否从 ini 文件中读取配置信息,为False 则用默认配置创建 |
ini_path | Path str | 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 | str None False | 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 | str Path | 必填 | 浏览器文件路径 |
返回类型 | 说明 |
---|---|
ChromiumOptions | 配置对象本身 |
如果传入的字符串不是浏览器可执行文件路径,则会转为使用默认路径。
📌 set_tmp_path()
此方法用于设置临时文件默认路径。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | str Path | 必填 | 用户数据文件夹默认路径 |
返回类型 | 说明 |
---|---|
ChromiumOptions | 配置对象本身 |
📌 set_local_port()
此方法用于设置本地启动端口。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
port | str int | 必填 | 端口号 |
返回类型 | 说明 |
---|---|
ChromiumOptions | 配置对象本身 |
📌 set_address()
此方法用于设置浏览器地址,格式 'ip:port'。
和set_local_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 | str Path | 必填 | 用户文件夹路径 |
返回类型 | 说明 |
---|---|
ChromiumOptions | 配置对象本身 |