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

【爬虫】DrissionPage-3

安装:4.1最新版本

pip install drissionpage --upgrade

官方文档:🛰️ 连接浏览器 | DrissionPage官网


1 Chromium对象

Chromium对象用于连接和管理浏览器。标签页的开关和获取、整体运行参数配置、浏览器信息获取等都由它进行。

1.1 默认方式

from DrissionPage import Chromium browser = Chromium()

 

1.2 指定端口或地址

from DrissionPage import Chromium # 接管9333端口的浏览器,如该端口空闲,启动一个浏览器 
browser = Chromium(9333) 
browser = Chromium('127.0.0.1:9333')

 

2 ChromiumOptions对象

配置好后传递给Chromium类来创建浏览器实例。

2.1 指定浏览器路径

# 导入 ChromiumOptions 
from DrissionPage import Chromium, ChromiumOptions # 创建浏览器配置对象,指定浏览器路径 
co = ChromiumOptions().set_browser_path(r'D:\chrome.exe') 
# 用该配置创建页面对象 
browser = Chromium(addr_or_opts=co)

2.2 指定 ini 文件创建

from DrissionPage import Chromium, ChromiumOptions # 创建配置对象时指定要读取的ini文件路径 
co = ChromiumOptions(ini_path=r'./config1.ini') 
# 使用该配置对象创建页面 
browser = Chromium(addr_or_opts=co)

2.3 手动指定端口和路径

from DrissionPage import Chromium, ChromiumOptions co = ChromiumOptions().set_local_port(9333).set_user_data_path(r'C:\tmp') 
browser = Chromium(co)

2.3.1 auto_port()方法

每次使用空闲的端口和临时用户文件夹创建浏览器,并且运行数据会自动清除。

多进程使用时,可用scope参数指定每个进程使用的端口范围,以免发生冲突。

from DrissionPage import Chromium, ChromiumOptions co = ChromiumOptions().auto_port() 
tab1 = Chromium(addr_or_opts=co).latest_tab 
tab2 = Chromium(addr_or_opts=co).latest_tab tab2.get('http://DrissionPage.cn') 
tab1.get('https://www.baidu.com')

2.3.2 new_env()方法

指定启动全新的浏览器。适合批量登陆,多用户

from DrissionPage import Chromium, ChromiumOptions co = ChromiumOptions().new_env() 
browser = Chromium(co)

2.3.3 use_system_user_path()方法

使用系统安装的浏览器的默认用户文件夹。以便复用用户信息和插件等。

from DrissionPage import Chromium, ChromiumOptions co = ChromiumOptions().use_system_user_path() 
browser = Chromium(co)

默认配置下,由 DrissionPage 创建的浏览器,用户文件夹在系统临时文件夹的DrissionPage\userData文件夹内,以端口命名。

假如用 DrissionPage 默认配置在 9222 端口创建一个浏览器,那么用户数据就存放在C:\Users\用户名\AppData\Local\Temp\DrissionPage\userData\9222路径。

这个用户文件夹不会主动清除,下次再使用 9222 端口时,会继续使用。

如果使用auto_port(),会存放在系统临时文件夹的DrissionPage\autoPortData文件夹内,以端口命名。

C:\Users\用户名\AppData\Local\Temp\DrissionPage\autoPortData\21489

这个用户文件夹是临时的,用完会被主动清除。

3 接管浏览器

3.1 配置的 ip:port 信息不变

使程序不必每次重新开始,可以单独调试某个功能

from DrissionPage import Chromium # 在9333端口启动浏览器同时创建对象,如果浏览器已经存在,则接管它 
browser = Chromium(9333)

3.2 手动打开

  1. 右键点击浏览器图标,选择属性

  2. 在“目标”路径后面加上 --remote-debugging-port=端口号(注意最前面有个空格)

  3. 点击确定

  4. 在程序中的浏览器配置中指定接管该端口浏览器

文件快捷方式的目标路径设置:"D:\chrome.exe" --remote-debugging-port=9333

接管浏览器时只有local_portaddress参数是有效的。

 

3.3 bat 文件启动

可以把上一种方式的目标路径设置写进 bat 文件(Windows系统),运行 bat 文件来启动浏览器,再用程序接管。

新建一个文本文件,在里面输入以下内容(路径改为自己电脑的):"D:\chrome.exe" --remote-debugging-port=9333

保存后把后缀改成 bat,然后双击运行就能在 9333 端口启动一个浏览器。程序代码则和上一个方法一致。

4 多浏览器共存

4.1 指定独立端口和数据文件夹

from DrissionPage import Chromium, ChromiumOptions# 创建多个配置对象,每个指定不同的端口号和用户文件夹路径
co1 = ChromiumOptions().set_paths(local_port=9111, user_data_path=r'D:\data1')
co2 = ChromiumOptions().set_paths(local_port=9222, user_data_path=r'D:\data2')# 创建多个页面对象
tab1 = Chromium(addr_or_opts=co1).latest_tab
tab2 = Chromium(addr_or_opts=co2).latest_tab# 每个页面对象控制一个浏览器
tab1.get('http://DrissionPage.cn')
tab2.get('https://www.baidu.com')

http://www.lryc.cn/news/2379469.html

相关文章:

  • Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包
  • 项目复习(2)
  • UE 材质基础 第一天
  • 短剧小程序系统开发源码上架,短剧项目市场分析
  • 学习FineBI
  • Oracle日期计算跟Mysql计算日期差距问题-导致两边计算不一致
  • 深入剖析某App视频详情逆向:聚焦sig3参数攻克
  • Java求职面试揭秘:从Spring到微服务的技术挑战
  • 【Linux】Linux安装并配置MongoDB
  • HANA数据库死锁
  • STC32G12K128实战:串口通信
  • Kotlin Multiplatform与Flutter、Compose共存:构建高效跨平台应用的完整指南
  • ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合
  • spark小任务
  • Ubuntu 20.04 报错记录: Matplotlib 无法使用 OpenCV 的 libqxcb.so
  • JS 高级程序设计 设计模式
  • 新电脑软件配置二:安装python,git, pycharm
  • 数据仓库:企业数据管理的核心引擎
  • MCU开发学习记录17* - RTC学习与实践(HAL库) - 日历、闹钟、RTC备份寄存器 -STM32CubeMX
  • C++中的四种强制转换
  • YOLOv2目标检测算法:速度与精度的平衡之道
  • Quic如何实现udp可靠传输
  • 利用腾讯云MCP提升跨平台协作效率的实践与探索
  • 【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
  • Python高级特性深度解析:从熟练到精通的跃迁之路
  • OGGMA 21c 微服务 (MySQL) 安装避坑指南
  • Linux面试题集合(4)
  • iOS Safari调试教程
  • 基于互联网和LabVIEW的多通道数据采集系统仿真设计
  • ffmpeg -vf subtitles添加字幕绝对路径问题的解决方法