【爬虫】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')

### 关于 DrissionPage爬虫使用教程 #### 安装与环境准备 为了能够顺利运行基于 `DrissionPage` 的爬虫项目,首先需要完成必要的安装和配置工作。以下是具体的准备工作: 1. **安装依赖库** 使用 Python 的包管理工具 `pip` 来安装 `DrissionPage` 库。可以通过以下命令实现安装: ```bash pip3 install DrissionPage ``` 2. **设置浏览器路径** 如果本地未自动检测到 Chrome 浏览器的位置,则需手动指定其路径。这一步只需执行一次即可生成配置文件: ```python from DrissionPage.easy_set import set_paths set_paths(chrome_path='/path/to/chrome') # 替换为实际的 Chrome 路径 ``` --- #### 示例代码展示 下面提供一段简单的示例代码来演示如何利用 `DrissionPage` 进行基本的网页抓取操作。 ```python from DrissionPage import ChromiumPage # 初始化页面对象 page = ChromiumPage() try: # 打开目标网站 page.get('https://example.com') # 获取页面标题 title = page.ele('title').text print(f'当前页面标题: {title}') # 查找并提取特定元素的内容 content = page.ele('#content-id').inner_text() print(f'获取到的内容: {content}') finally: # 关闭浏览器实例 page.quit() ``` 上述代码展示了以下几个核心功能: - 创建一个 `ChromiumPage` 对象用于控制无头浏览器[^2]。 - 访问指定 URL 并读取页面中的数据。 - 提供了通过 CSS 选择器定位 HTML 元素的能力,并从中提取所需的信息。 --- #### 更多高级特性 除了基础的数据采集外,`DrissionPage` 还提供了许多强大的扩展能力,比如处理动态加载内容、模拟用户交互行为以及支持多种渲染引擎切换等功能。这些都可以帮助开发者更高效地构建复杂的网络爬虫应用。 如果希望深入学习该框架的具体细节及其最佳实践案例,建议访问官方文档站点进一步查阅相关内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值