百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

DrissionPage:让你的 Python 爬虫和自动化脚本飞起来!

itomcoil 2025-04-30 17:33 4 浏览

还在为复杂的网页自动化和数据抓取而头疼吗?别担心,DrissionPage 来了!这个由 g1879 大佬开发的开源项目,就像一位全能选手,既能像浏览器一样操控网页,又能像 requests 一样高效收发数据包,简直是 Python 爬虫和自动化脚本的福音。

一、项目简介

DrissionPage,正如其名,是一个强大的网页自动化工具,它基于 Python,却拥有超越传统工具的性能和灵活性。它不仅能控制浏览器,还能直接处理数据包,甚至可以将两者结合使用,让你在网页自动化和数据抓取之间自由切换,不再受限于单一模式。

DrissionPage 的目标是“简单且强大”,它内置了许多人性化设计和便捷功能,让你的代码更简洁优雅,开发效率更高。如果你厌倦了繁琐的配置和复杂的语法,那么 DrissionPage 绝对值得你一试。

二、核心功能

1. 自研内核,性能飞跃

DrissionPage 采用完全自研的内核,不依赖于 webdriver,这意味着你无需为不同版本的浏览器下载不同的驱动,告别了版本兼容的烦恼。它运行速度更快,可以跨 iframe 查找元素,无需繁琐的切入切出操作,把 iframe 当普通元素对待,逻辑更清晰。

2. 强大的元素定位

DrissionPage 提供了极简的定位语法,让你查找元素更加便捷。它还内置了等待和自动重试机制,即使在不稳定的网络环境下,也能保证程序的稳定运行。

3. 浏览器和数据包双管齐下

DrissionPage 不仅能控制浏览器,还能直接收发数据包。你可以根据实际需求,选择最适合的方式进行操作。例如,对于需要模拟用户行为的场景,可以使用浏览器控制;对于只需要获取数据的场景,可以使用数据包收发,效率更高。

4. 更多亮点功能

  • 多标签页操作: 可以同时操作多个标签页,无需切换,效率更高。
  • 缓存读取: 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击保存。
  • 网页截图: 可以对整个网页截图,包括视口外的部分。
  • Shadow-root 处理: 可以处理非 open 状态的 shadow-root。
  • 下载工具: 提供强大的下载工具,操作浏览器也能享受高速且可靠的下载功能。
  • 配置管理: 使用 ini 文件保存常用配置并自动调用,提供便捷设置。
  • 解析引擎: 内置 lxml 作为解析引擎,解析速度提升几个数量级。
  • POM 模式封装: 以 POM 模式封装,可直接用于测试,且易于扩展。

三、部署方式

DrissionPage 支持 Windows、Linux 和 Mac 系统,Python 版本要求 3.6 以上。

1. 安装

你可以通过 pip 命令轻松安装 DrissionPage:

pip install DrissionPage

2. 浏览器配置

DrissionPage 默认控制 Chrome 浏览器,但也支持其他 Chromium 内核的浏览器,如 Edge。

2.1 自动查找

程序默认会自动在系统内查找 Chrome 路径,如果你的浏览器安装在默认位置,通常无需额外配置。

2.2 手动设置

如果程序无法自动找到浏览器路径,你需要手动设置。

  • 方法一: 使用代码设置:
  • from DrissionPage import ChromiumOptions path = r'D:\Chrome\Chrome.exe' # 请改为你电脑内Chrome可执行文件路径 ChromiumOptions().set_browser_path(path).save()
  • 方法二: 使用命令行设置:
  • dp -p "D:\Chrome\chrome.exe"
  • 注意: 确保命令行环境与项目环境一致,并先使用 cd 命令定位到项目路径。

四、使用方式

1. 简单示例:登录 Gitee

以下代码演示了如何使用 DrissionPage 控制浏览器登录 Gitee:

from DrissionPage import Chromium

# 启动或接管浏览器,并创建标签页对象
tab = Chromium().latest_tab

# 跳转到登录页面
tab.get('https://gitee.com/login')

# 定位到账号文本框,获取文本框元素
ele = tab.ele('#user_login')

# 输入账号
ele.input('您的账号')

# 定位到密码文本框并输入密码
tab.ele('#user_password').input('您的密码')

# 点击登录按钮
tab.ele('@value=登 录').click()

2. 代码解析

  • Chromium():创建 Chromium 对象,用于连接浏览器。
  • latest_tab:获取一个标签页对象。
  • get():访问指定网址,等待页面加载完成。
  • ele():查找元素,返回一个 ChromiumElement 对象。
  • input():对元素输入文本。
  • click():点击元素。

3. 更多用法

DrissionPage 的功能远不止这些,你可以通过阅读官方文档了解更多用法,例如:

  • 元素操作:获取元素属性、文本内容、执行 JavaScript 代码等。
  • 数据包收发:发送 GET/POST 请求,处理响应数据。
  • 文件下载:高速下载文件,支持断点续传。
  • 多线程/多进程:提高程序运行效率。

五、总结

DrissionPage 是一款功能强大、易于使用的 Python 网页自动化工具,它集成了浏览器控制和数据包收发功能,并提供了许多人性化的设计和便捷功能。无论你是爬虫爱好者,还是自动化脚本开发者,DrissionPage 都能帮助你提高效率,简化开发流程。

相关推荐

tesseract-ocr 实现图片识别功能

最近因为项目需要,接触了一下关于图像识别的相关内容,例如Tesseract。具体如何安装、设置在此不再赘述。根据项目要求,我们需要从省平台获取实时雨水情况数据,原以为获取这样的公开数据比较简单,上去一...

跨平台Windows和Linux(银河麒麟)操作系统OCR识别应用

1运行效果在银河麒麟桌面操作系统V10(SP1)上运行OCR识别效果如下图:2在Linux上安装TesseractOCR引擎2.1下载tesseract-ocr和leptonicahttps:...

JAVA程序员自救之路——SpringAI文档解析tika

ApacheTika起源于2007年3月,最初是ApacheLucene项目的子项目,于2010年5月成为Apache组织的顶级项目。它利用现有的解析类库,能够侦测和提取多种不同格式文档中的元数据...

Python印刷体文字识别教程

在Python中实现印刷体文字识别(OCR),通常使用TesseractOCR引擎结合Python库。以下是详细步骤和示例:1.安装依赖库bashpipinstallpytesseractp...

图片转文字--四种OCR工具的安装和使用

本文仅测试简单的安装和使用,下一步应该是测试不同数据集下的检测准确率和检测效率,敬请期待。作者的系统环境是:笔记本:ThindPadP520OS:win11显卡:QuadroP520一、EasyO...

mac 安装tesseract、pytesseract以及简单使用

一.tesseract-OCR的介绍1.tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2.用te...

【Python深度学习系列】Win10下CUDA+cuDNN+Tensorflow安装与配置

这是我的第292篇原创文章。一、前置知识安装GPU版本的pytorch和tensorflow之前需要理清楚这几个关系:显卡(电脑进行数模信号转换的设备,有的电脑可能是双显卡,一个是inter的集成显卡...

手把手教你本地部署AI绘图Stable Diffusion!成功率100%!

导语:无需每月付费订阅,无需高性能服务器!只需一台普通电脑,即可免费部署爆火的AI绘图工具StableDiffusion。本文提供“极速安装包”和“手动配置”双方案,从环境搭建到模型调试,手把手教你...

本地AI Agent Hello World(Python版): Ollama + LangChain 快速上手指南

概要本文将用最简洁的Python示例(后续还会推出Java版本),带你逐步完成本地大模型Agent的“HelloWorld”:1、介绍核心工具组件:Ollama、LangChain和...

python解释器管理工具pyenv使用说明

简介pyenv可以对python解释器进行管理,可以安装不同版本的python,管理,切换不同版本很方便,配置安装上比anaconda方便。pyenv主要用来对Python解释器进行管理,可以...

Deepseek实战:企业别只会用Ollama,也可以用SGLang

SGLang:企业级的“性能之王”优点吞吐量碾压级优势通过零开销批处理调度器、缓存感知负载均衡器等核心技术,SGLang的吞吐量提升显著。例如,在处理共享前缀的批量请求时,其吞吐量可达158,59...

用LLaMA-Factory对Deepseek大模型进行微调-安装篇

前面的文章已经把知识库搭建好了,还通过代码的形式做完了RAG的实验。接下来呢,咱们要通过实际操作来完成Deepseek的另一种优化办法——微调。一、环境因为我这台电脑性能不太好,所以就在Au...

碎片时间学Python-03包管理器

一、pip(Python官方包管理器)1.基础命令操作命令安装包pipinstallpackage安装特定版本pipinstallnumpy==1.24.0升级包pipinstall-...

ubuntu22/24中利用国内源部署大模型(如何快速安装必备软件)

本地AI部署的基础环境,一般会用到docker,dockercompose,python环境,如果直接从官网下载,速度比较慢。特意记录一下ubuntu使用国内源快速来搭建基础平台。一,docke...

还不会deepseek部署到本地?这篇教程手把手教会你

一、为什么要把DeepSeek部署到本地?新手必看的前置知识近期很多读者在后台询问AI工具本地部署的问题,今天以国产优质模型DeepSeek为例,手把手教你实现本地化部署。本地部署有三大优势:数据隐私...