mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
89 lines
3.4 KiB
Markdown
89 lines
3.4 KiB
Markdown
因 chrome 和 headers 配置繁多,故设置一个 ini 文件专门用于保存常用配置,你可使用 OptionsManager 对象获取和保存配置,用 DriverOptions 对象修改 chrome 配置。你也可以保存多个 ini
|
||
文件,按不同项目须要调用。
|
||
|
||
Tips:建议把常用配置文件保存到别的路径,以防本库升级时配置被重置。
|
||
|
||
# ini 文件内容
|
||
|
||
ini 文件默认拥有三部分配置:paths、chrome_options、session_options,初始内容如下。
|
||
|
||
```ini
|
||
[paths]
|
||
; chromedriver.exe路径
|
||
chromedriver_path =
|
||
; 临时文件夹路径,用于保存截图、文件下载等
|
||
tmp_path =
|
||
|
||
[chrome_options]
|
||
; 已打开的浏览器地址和端口,如127.0.0.1:9222
|
||
debugger_address =
|
||
; 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"
|
||
}
|
||
```
|
||
|
||
# OptionsManager 对象
|
||
|
||
OptionsManager 对象用于读取、设置和保存配置。
|
||
|
||
```python
|
||
manager.paths # 以字典形式返回路径设置
|
||
manager.chrome_options # 以字典形式返回chrome设置
|
||
manager.session_options # 以字典形式返回session设置
|
||
manager.get_value(section, item) # 获取某个配置的值
|
||
manager.get_option(section) # 以字典格式返回配置全部属性
|
||
manager.set_item(section, item, value) # 设置配置属性
|
||
manager.manager.save() # 保存当前打开的 ini 文件
|
||
manager.save('D:\\settings.ini') # 保存到指定路径 ini 文件
|
||
manager.save('default') # 保存当前设置到默认 ini 文件
|
||
```
|
||
|
||
# 使用示例
|
||
|
||
```python
|
||
from DrissionPage.configs import *
|
||
|
||
options_manager = OptionsManager() # 从默认ini文件创建OptionsManager对象
|
||
options_manager = OptionsManager('D:\\settings.ini') # 从其它ini文件创建OptionsManager对象
|
||
driver_path = options_manager.get_value('paths', 'chromedriver_path') # 读取路径信息
|
||
options_manager.save() # 保存当前打开的 ini 文件
|
||
options_manager.save('D:\\settings.ini') # 保存到指定路径 ini 文件
|
||
|
||
drission = Drission(ini_path='D:\\settings.ini') # 使用指定 ini 文件创建对象
|
||
``` |