30 lines
1.1 KiB
Python
Raw Normal View History

2025-03-28 18:23:30 +08:00
from DrissionPage import Chromium, ChromiumOptions
2025-03-28 23:19:42 +08:00
from .ua import random_ua
from ..config.config import AppCtx
2025-03-28 18:23:30 +08:00
class DPEngine:
"""DrissionPage 引擎"""
def __init__(self, is_wap: bool = False, no_img: bool = True):
chrome_opts = ChromiumOptions()
chrome_opts.mute(True) # 静音
2025-04-01 00:36:01 +08:00
chrome_opts.headless(False) # 无头模式
2025-03-28 23:19:42 +08:00
chrome_opts.no_imgs(no_img) # 不加载图片
2025-03-28 18:23:30 +08:00
chrome_opts.set_argument("--disable-gpu") # 禁用GPU
chrome_opts.set_argument('--ignore-certificate-errors') # 忽略证书错误
2025-03-28 23:19:42 +08:00
chrome_opts.set_argument('--start-maximized') # 最大化启动
chrome_opts.set_argument(f'--user-agent={random_ua(is_wap)}') # 设置 UA
2025-04-01 00:36:01 +08:00
# chrome_opts.incognito(True)
2025-03-28 23:19:42 +08:00
chrome_opts.auto_port(True)
2025-03-28 18:23:30 +08:00
# 设置代理
2025-03-28 23:19:42 +08:00
if AppCtx.g_app_config.chrome.proxy:
chrome_opts.set_argument('--proxy-server', AppCtx.g_app_config.chrome.proxy)
2025-03-28 18:23:30 +08:00
# 创建浏览器对象
self.browser = Chromium(addr_or_opts=chrome_opts)
2025-03-28 23:19:42 +08:00
def close(self):
self.browser.quit()