mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
266 lines
7.0 KiB
Markdown
266 lines
7.0 KiB
Markdown
本库使用 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_path:ini 文件路径,默认读取默认 ini 文件
|
||
|
||
返回:`None`
|
||
|
||
## set_paths()
|
||
|
||
该方法用于设置浏览器用到的几种路径信息,设置后可检查 driver 是否和浏览器匹配。
|
||
|
||
参数:
|
||
|
||
- driver_path:chromedriver.exe 路径
|
||
- chrome_path:chrome.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_agent:user agent文本
|
||
- ini_path: 要修改的 ini 文件路径,默认设置默认 ini 文件
|
||
|
||
返回:`None`
|
||
|
||
## set_argument()
|
||
|
||
该方法用于设置浏览器配置 argument 属性。
|
||
|
||
参数:
|
||
|
||
- arg:属性名
|
||
- value:属性值,有值的属性传入值。没有的传入`bool`表示开或关
|
||
- ini_path:要修改的 ini 文件路径,默认设置默认 ini 文件
|
||
|
||
返回:`None`
|
||
|
||
## check_driver_version()
|
||
|
||
该方法用于检查传入的 chrome 和 chromedriver 是否匹配。
|
||
|
||
参数:
|
||
|
||
- driver_path:chromedriver.exe 路径
|
||
- chrome_path:chrome.exe 路径
|
||
|
||
返回:`bool`类型,表示是否匹配
|
||
|
||
## get_match_drive()
|
||
|
||
该方法用于自动识别 chrome 版本并下载匹配的 driver。
|
||
|
||
参数:
|
||
|
||
- ini_path:要读取和修改的 ini 文件路径
|
||
- save_path:chromedriver 保存路径
|
||
- chrome_path:指定 chrome.exe 位置,不指定会自动依次在 ini 文件、注册表、系统路径中查找
|
||
- show_msg:是否打印信息
|
||
- check_version:是否检查版本匹配
|
||
|
||
返回:成功返回 driver 路径,失败返回`None`
|