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

DrissionPage 基于 Python 的网页自动化工具

DrissionPage

DrissionPage® 是一个基于 Python 的网页自动化工具。既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。功能强大,语法简洁优雅,代码量少,对新手友好。

目前仅支持 Chromium 内核浏览器(如 Chrome 和 Edge)、electron 应用等

相关地址:
官网:http://drissionpage.cn/
gitee:https://gitee.com/g1879/DrissionPage
github:https://github.com/g1879/DrissionPage
gitcode:https://gitcode.com/g1879/DrissionPage

安装方法

pip install  DrissionPage
pip install DrissionPage --upgrade   # 更新到最新稳定版本
pip install DrissionPage==4.0.0b17  # 更新到指定版本

DrissionPage 提供的功能放在以下几个路径:

  • from DrissionPage import ****:浏览器类、配置类、页面类
  • from DrissionPage.errors import ****:异常
  • from DrissionPage.common import ****:辅助工具
  • from DrissionPage.items import ****:衍生对象,用于类型判断

浏览器基本操作

  1. 创建浏览器对象,用于启动或接管浏览器

    # 导入
    from DrissionPage import Chromium# 直接连接浏览器
    browser = Chromium()  
    # 接管浏览器
    browser = Chromium(9333)  # 接管9333端口的浏览器,如该端口空闲,启动一个浏览器
    browser = Chromium('127.0.0.1:9333')  # 与上一行一样
    browser = Chromium('ws://127.0.0.1:8987/devtools/browser/3e590fc5-4587-47e1-8756-cf6784f2fef3')  # 指定ws连接
    
    初始化参数 类型 默认值 说明
    addr_or_opts str int ChromiumOptions None 浏览器启动配置或接管信息。 传入 ‘ip: port’ 字符串、浏览器 ws 地址、端口数字或ChromiumOptions对象时按配置启动或接管浏览器; 为None时使用配置文件配置启动浏览器
    session_options SessionOptions None False None 使用双模 Tab 时使用的默认 Session 配置,为None使用 ini 文件配置,为False不从 ini 读取

    默认情况下,程序使用 9222 端口,浏览器可执行文件路径为chrome

  2. 获取一个 Tab 对象

    from DrissionPage import Chromiumbrowser = Chromium()
    # 获取一个标签页对象或它的 id
    tab = browser.get_tab(url="https://www.baidu.com")
    
    参数名称 类型 默认值 说明
    id_or_num str int None 要获取的标签页 id 或序号,序号从1开始,可传入负数获取倒数第几个,不是视觉排列顺序,而是激活顺序
    title str None 要匹配 title 的文本,模糊匹配,为None则匹配所有
    url str None 要匹配 url 的文本,模糊匹配,为None则匹配所有
    tab_type str list tuple 'page' 标签页类型,可用列表输入多个,如'page''iframe'等,为None则匹配所有
    as_id bool False 是否返回标签页 id 而不是标签页对象

    其他属性:

    属性 描述 返回值类型
    latest_tab 此属性返回最新的标签页对象或 id MixTab | str
    tabs_count 此属性返回标签页数量,只统计普通标签页(即'page''webview'类型)。 int
    tab_ids 此属性返回所有标签页 id 组成的列表,只统计普通标签页(即'page''webview'类型)。 List[str]
    new_tab() 此方法用于新建标签页,并返回标签页对象。 MixTab
    activate_tab() 此方法用于使一个标签页显示到前端。可传入 Tab 对象、标签页 id、标签页序号。 None
    close_tabs() 此方法用于关闭标签页。可指定多个,可关闭指定标签页以外的。 None
    get_tabs() 此方法用于获取多个符合条件的MixTab对象或它们的 id组成的列表。 List[MixTab] | List[str]
  3. 使用 Tab 对象访问网址

http://www.dtcms.com/a/540017.html

相关文章:

  • Next.js vs Vue.js:2025年全栈战场,谁主沉浮?
  • DAY01笔记
  • 10-js基础(ESMAScript)
  • 一次深入排查:Spring Cloud Gateway TCP 连接复用导致 K8s 负载均衡失效
  • 基于 Vue3 及TypeScript 项目后的总结
  • Android下解决滑动冲突的常见思路是什么?
  • 建筑外观设计网站如何做一个门户网站
  • SQL多表查询完全指南-从JOIN到复杂关联的数据整合利器
  • Redis主从复制与哨兵集群
  • 电科金仓“异构多活架构”:破解浙江省人民医院集团化信创难题的密钥
  • 从零搭建群晖私有影音库:NasTool自动化追剧全流程拆解与远程访问协议优化实践
  • Maven项目管理:高效构建与依赖管理!
  • 【win11】funasr 1:配置conda环境
  • 2025年--Lc219-590. N 叉树的后序遍历(递归版,带测试用例)-Java版
  • YOLO11追踪简单应用
  • Spring Web MVC 入门秘籍:从概念到实践的快速通道(上)
  • 网站是什么字体企业内网模板
  • 建一个小型购物网站要有服务器网易博客搬家wordpress
  • 申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)​附安装包
  • 当同一个弹性云服务器所在子网同时设置了snat和弹性公网IP时,会优先使用哪个
  • 基于Chrome140的TK账号自动化(关键词浏览)——需求分析环境搭建(一)
  • 如何自建内网穿透(FRP)服务器
  • 服务器上用Slurm 管理训练bash 脚本任务
  • SpringBoot入门,第一个SpringBoot的创建
  • Spring AOP核心原理分析
  • HTTPS 错误排查实战,从握手到应用层的工程化流程
  • 基于ASP身份认证服务器实现远程办公VPN双因素认证的架构与实践
  • 服务器会遭受到哪些网络攻击
  • 网站设计制作软件江门自助建站模板
  • 滨州做网站推广h5制作方法