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 ****:衍生对象,用于类型判断
浏览器基本操作
-
创建浏览器对象,用于启动或接管浏览器
# 导入 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_optsstrintChromiumOptionsNone浏览器启动配置或接管信息。 传入 ‘ip: port’ 字符串、浏览器 ws 地址、端口数字或 ChromiumOptions对象时按配置启动或接管浏览器; 为None时使用配置文件配置启动浏览器session_optionsSessionOptionsNoneFalseNone使用双模 Tab 时使用的默认 Session 配置,为 None使用 ini 文件配置,为False不从 ini 读取默认情况下,程序使用 9222 端口,浏览器可执行文件路径为
chrome -
获取一个 Tab 对象
from DrissionPage import Chromiumbrowser = Chromium() # 获取一个标签页对象或它的 id tab = browser.get_tab(url="https://www.baidu.com")参数名称 类型 默认值 说明 id_or_numstrintNone要获取的标签页 id 或序号,序号从 1开始,可传入负数获取倒数第几个,不是视觉排列顺序,而是激活顺序titlestrNone要匹配 title 的文本,模糊匹配,为 None则匹配所有urlstrNone要匹配 url 的文本,模糊匹配,为 None则匹配所有tab_typestrlisttuple'page'标签页类型,可用列表输入多个,如 'page'、'iframe'等,为None则匹配所有as_idboolFalse是否返回标签页 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] -
使用 Tab 对象访问网址
