当前位置: 首页 > ops >正文

【爬虫】DrissionPage-4

官网文档:https://www.drissionpage.cn/browser_control/browser_options

一、核心对象与初始化

1. 类定义
  • 作用:管理Chromium内核浏览器的启动配置,仅在浏览器启动时生效。
  • 导入方式
    from DrissionPage import ChromiumOptions
    
2. 初始化参数
参数名类型默认值说明
read_fileboolTrue是否从ini文件读取配置(False则使用默认配置)
ini_pathstr/PathNone指定ini文件路径(None时读取内置配置文件)
3. 创建示例
# 从ini文件读取配置(默认)
co = ChromiumOptions()# 使用默认配置(不读取ini文件)
co = ChromiumOptions(read_file=False)

二、启动参数与命令行设置

1. 基础参数操作
方法名作用参数说明
set_argument(arg, value=None)添加启动参数(如--headlessarg:参数名;value:参数值(无值参数传None,删除参数传False
remove_argument(arg)删除指定启动参数arg:参数名(无需值)
clear_arguments()清空所有启动参数无参数
2. 常用预设参数
方法名作用参数类型默认值示例
headless(on_off=True)设置无头模式boolTrueco.headless(True)
incognito(on_off=True)设置无痕模式boolTrueco.incognito()
ignore_certificate_errors(on_off=True)忽略证书错误boolTrueco.ignore_certificate_errors()
no_imgs(on_off=True)禁用图片加载boolTrueco.no_imgs(True)
no_js(on_off=True)禁用JavaScriptboolTrueco.no_js(True)
mute(on_off=True)静音模式boolTrueco.mute(True)

三、路径与端口配置

1. 路径设置
方法名作用参数说明
set_browser_path(path)设置浏览器可执行文件路径path:文件路径(字符串/Path对象)
set_user_data_path(path)设置用户数据目录(配置文件)path:目录路径
use_system_user_path(on_off=True)使用系统默认用户目录on_off:是否启用(默认True
set_tmp_path(path)设置临时文件目录path:目录路径
set_cache_path(path)设置缓存目录path:目录路径
set_download_path(path)设置下载文件路径path:目录路径
set_paths(**kwargs)批量设置路径支持参数:browser_path, user_data_path, download_path
2. 端口与地址
方法名作用参数说明
set_local_port(port)手动设置本地端口port:端口号(整数/字符串)
set_address(address)设置连接地址(格式ip:portaddress:地址字符串(如127.0.0.1:9222
auto_port(on_off=True, scope=None)自动分配端口(多线程适用)on_off:是否启用;scope:端口范围元组(如(5000, 6000),左闭右开)

注意

  • set_local_port()set_address()auto_port()互斥,后调用的方法生效
  • 多进程需通过scope指定端口范围避免冲突。

四、插件与用户配置

1. 插件管理
方法名作用参数说明
add_extension(path)添加插件(支持解压目录或.crx)path:插件路径
remove_extensions()移除所有已添加的插件无参数
existing_only(on_off=True)仅操作已存在的插件(防报错)on_off:是否启用(默认True
2. 用户与偏好设置
方法名作用参数说明
set_user(user='Default')设置用户配置文件夹名称user:文件夹名(如'Profile 1'
set_pref(arg, value)设置浏览器偏好配置arg:配置项名称;value:配置值(如'profile.default_content_settings.popups': 0
remove_pref(arg)删除内存中的偏好配置arg:配置项名称
remove_pref_from_file(arg)删除配置文件中的偏好配置arg:配置项名称
clear_prefs()清空所有偏好配置无参数

五、运行时与网络配置

1. 超时与重试
方法名作用参数说明
set_timeouts(base=None, page_load=None, script=None)设置超时时间(秒)base:默认超时;page_load:页面加载超时;script:JS运行超时
set_retry(times=None, interval=None)设置连接重试策略times:重试次数;interval:重试间隔(秒)
2. 网络与加载策略
方法名作用参数说明
set_load_mode(mode='normal')设置加载模式(提高效率)mode'normal'(默认)、'eager'(DOM就绪)、'none'(仅连接)
set_proxy(proxy)设置浏览器代理(单次生效)proxy:代理字符串(如'http://localhost:1080',不支持带认证代理)
set_user_agent(user_agent)设置用户代理字符串user_agent:完整UA文本(如'Mozilla/5.0 (Windows)...'

六、实验性配置(Chrome Flags)

方法名作用参数说明
set_flag(flag, value=None)设置Chrome实验性参数(chrome://flagsflag:参数名;value:参数值(无值参数不传)
clear_flags()清空内存中的实验性参数无参数
clear_flags_in_file()清空配置文件中的实验性参数无参数

七、状态保存与属性

1. 配置保存
方法名作用参数说明
save(path=None)保存配置到ini文件path:文件路径(None时保存到当前读取的文件)
save_to_default()保存到内置ini文件无参数
2. 只读属性(获取当前配置)
属性名类型说明
addressstr浏览器连接地址(格式ip:port
browser_pathstr浏览器可执行文件路径
user_data_pathstr用户数据目录路径
timeoutsdict超时设置(base, page_load, script
argumentslist启动参数列表
extensionslist插件路径列表

关键使用规则

  1. 配置生效时机:所有设置需在浏览器启动前完成(通过Chromium(co)传递配置对象)。
  2. 互斥方法
    • 端口相关:set_local_port()/set_address()auto_port()互斥,后调用优先。
    • 路径相关:set_user_data_path()auto_port()互斥(自动分配路径会覆盖手动设置)。
  3. 多进程限制auto_port()不支持多进程,需通过scope参数为每个进程分配独立端口范围。
  4. 插件兼容性:推荐使用解压后的插件目录,而非.crx文件(稳定性更高)。
http://www.xdnf.cn/news/6534.html

相关文章:

  • h5,原生html,echarts关系网实现
  • 降低学习成本,1 天掌握 Java 开发核心技能
  • 【带文档】网上点餐系统 springboot + vue 全栈项目实战(源码+数据库+万字说明文档)
  • 《AI大模型应知应会100篇》第66篇:用大模型 + 向量数据库构建你的个性化知识库系统(附实战代码)
  • FPGA: XILINX Kintex 7系列器件的架构
  • 广州附医华南医院MDT团队新技术赋能「睡眠障碍治疗」:告别单一、反复、不对症,实现精准快速起效!
  • 架构选择、区别
  • C++动态内存分配
  • MySQL高可用
  • GEE计算 RSEI(遥感生态指数)
  • 无损耗协议:PROFINET和EtherNet IP网关的高效安装指南
  • SSH主机密钥验证失败:全面解决方案与技术手册
  • 2025-5-16Vue3快速上手
  • 填孔即可靠:猎板PCB如何用树脂塞孔重构高速电路设计规则
  • 从前序与中序遍历序列构造二叉树(中等)
  • 【linux】Web服务—搭建nginx+ssl的加密认证web服务器
  • Ubuntu快速安装Python3.11及多版本管理
  • 项目版本管理和Git分支管理方案
  • Android 中 显示 PDF 文件内容(AndroidPdfViewer 库)
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
  • SpringCloud微服务开发与实战
  • 官方 Elasticsearch SQL NLPChina Elasticsearch SQL
  • [特殊字符][特殊字符]知识库PHP版 | ChatMoneyAI宝塔面板Docker多部署
  • Java EE初阶——wait 和 notify
  • CentOS高手之路:从进阶实战到企业级优化
  • 维智定位 Android 定位 SDK
  • 网站运维基础 | 2. cms介绍及wordpress的搭建
  • 物联网中的WiFi模式解析:AP、STA与混合模式
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • 还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍