DrissionPage/docs/使用方法/启动配置/使用配置文件.md
2022-01-18 17:10:42 +08:00

266 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

本库使用 ini 文件记录浏览器或`Session`对象的启动配置。便于配置复用,免于在代码中加入繁琐的配置信息。
默认情况下,`MixPage`对象启动时自动加载文件中的配置信息。
也可以在默认配置基础上用简单的方法再次修改,再保存到 ini 文件。
也可以保存多个 ini 文件,按不同项目须要调用。
!> **注意:** <br>
ini 文件仅用于管理启动配置,浏览器或`Session`创建后再修改 ini 文件内容是没有效果的。 <br>
如果是接管已打开的浏览器,这些设置也没有用。 <br>
每次升级本库ini 文件都会被重置,可另存到其它路径以免重置。
# ini 文件内容
ini 文件默认拥有三部分配置:`paths``chrome_options``session_options`,初始内容如下。
```
[paths]
; chromedriver.exe路径
chromedriver_path =
; 临时文件夹路径,暂时没有实际作用
tmp_path =
[chrome_options]
; 浏览器默认地址和端口,程序会启动或接管这个端口的浏览器进程,设为 '' 则用 selenium 普通方式启动浏览器
debugger_address = 127.0.0.1:9222
; chrome.exe路径
binary_location =
; 配置信息
arguments = [
; 静音
'--mute-audio',
; 不使用沙盒
'--no-sandbox',
; 谷歌文档提到需要加上这个属性来规避bug
'--disable-gpu',
; 忽略警告
'ignore-certificate-errors',
; 不显示信息栏
'--disable-infobars'
]
; 插件
extensions = []
; 实验性配置
experimental_options = {
'prefs': {
; 下载不弹出窗口
'profile.default_content_settings.popups': 0,
; 无弹窗
'profile.default_content_setting_values': {'notifications': 2},
; 禁用PDF插件
'plugins.plugins_list': [{"enabled": False, "name": "Chrome PDF Viewer"}]
},
; 设置为开发者模式,防反爬虫
'excludeSwitches': ["enable-automation"],
'useAutomationExtension': False
}
[session_options]
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive",
"Accept-Charset": "utf-8;q=0.7,*;q=0.7"
}
```
# 文件位置
默认配置文件存放在库文件夹下,文件名为 configs.ini。
用户可另存其它配置文件,或从另存的文件读取配置,但默认文件的位置和名称不会改变。
# 使用默认配置文件启动
## 使用`MixPage`对象自动加载
这是默认启动方式。
```python
from DrissionPage import MixPage
page = MixPage()
```
## 使用配置对象加载
这种方式一般用于加载配置后须要进一步修改。
```python
from Drission.config import DriverOptions, SessionOptions
do = DriverOptions()
so = SessionOptions()
page = MixPaage(driver_options=do, session_option=so)
```
## 使用 Drission 对象加载
这种方式一般用于加载非默认配置文件,或须在多个页面对象间传递`Drission`对象的情况。
```python
from DrissionPage import MixPage, Drission
ds = Drission(ini_path=r'D:\config1.ini')
page = MixPage(drission=ds)
```
# 保存/另存 ini 文件
```python
from DrissionPage.config import DriverOptions
do = DriverOptions()
# 设置不加载图片
do.set_no_imgs()
# 保存到默认 ini 文件
do.save()
# 保存到其它位置的配置文件
do.save(r'D:\config1.ini')
```
# easy_set 方法
Chrome 浏览器的配置繁琐且难以记忆,本库提供一些常用功能的快速设置方法,调用即可修改 ini 文件中该部分内容。
!> **注意:** <br>
easy_set 方法仅用于设置 ini 文件,浏览器或 Session 创建后再调用没有效果的。 <br>
如果是接管已打开的浏览器,这些设置也没有用。
## 简单示例
```python
# 导入
from DrissionPage.easy_set import set_headless
# 设置无头模式
set_headless(True)
```
## show_settings()
该方法用于打印 ini 文件内容。
参数:
- ini_pathini 文件路径,默认读取默认 ini 文件
返回:`None`
## set_paths()
该方法用于设置浏览器用到的几种路径信息,设置后可检查 driver 是否和浏览器匹配。
参数:
- driver_pathchromedriver.exe 路径
- chrome_pathchrome.exe 路径
- local_port本地端口号
- debugger_address调试浏览器地址会覆盖 local_port 设置127.0.0.1:9222
- download_path下载文件路径
- tmp_path临时文件夹路径暂时没有作用
- user_data_path用户数据路径
- cache_path缓存路径
- ini_path要修改的 ini 文件路径,默认设置默认 ini 文件
- check_version是否检查 chromedriver 和 Chrome 是否匹配
返回:`None`
## set_headless()
该方法用于设置是否已无头模式启动浏览器。
参数:
- on_off`bool`类型,表示开或关
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## set_no_imgs()
该方法用于设置是否禁止加载图片。
参数:
- on_off`bool`类型,表示开或关
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## set_mute()
该方法用于设置是否静音。
参数:
- on_off`bool`类型,表示开或关
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## set_proxy()
该方法用于设置代理。
参数:
- proxy: 代理网址和端口,如 127.0.0.1:1080
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## set_user_agent()
该方法用于设置 user agent。
参数:
- user_agentuser agent文本
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## set_argument()
该方法用于设置浏览器配置 argument 属性。
参数:
- arg属性名
- value属性值有值的属性传入值。没有的传入`bool`表示开或关
- ini_path要修改的 ini 文件路径,默认设置默认 ini 文件
返回:`None`
## check_driver_version()
该方法用于检查传入的 chrome 和 chromedriver 是否匹配。
参数:
- driver_pathchromedriver.exe 路径
- chrome_pathchrome.exe 路径
返回:`bool`类型,表示是否匹配
## get_match_drive()
该方法用于自动识别 chrome 版本并下载匹配的 driver。
参数:
- ini_path要读取和修改的 ini 文件路径
- save_pathchromedriver 保存路径
- chrome_path指定 chrome.exe 位置,不指定会自动依次在 ini 文件、注册表、系统路径中查找
- show_msg是否打印信息
- check_version是否检查版本匹配
返回:成功返回 driver 路径,失败返回`None`