使用方法:文档
本项目主要在gitee上更新,稳定版本会提交到GitHub。 在gitee查看最新进展。
✨️ 概述
DrissionPage是一个基于Python的网页自动化工具。 它可以控制浏览器、发送和接收数据包,并将两者结合为一体。 它兼顾了浏览器自动化的便利性和requests的高效性。 它功能强大,内置了无数用户友好的设计和便捷功能。 它的语法简洁优雅,代码量小,对新手友好。
你的星标是对我最大的支持。💖
验证码解决方案
CapSolver是一项由人工智能驱动的服务,专门自动解决各种类型的验证码,通过帮助开发者轻松克服网页抓取过程中遇到的验证码挑战来赋能数据采集。它支持reCAPTCHA V2、reCAPTCHA V3、hCaptcha、FunCaptcha、DataDome、AWS Captcha、Geetest和Cloudflare turnstile等验证码。对于开发者,Capsolver提供了详细的文档中的API集成选项,便于将验证码解决方案集成到应用程序中。他们还提供了Chrome和Firefox的浏览器扩展,使用户可以直接在浏览器中轻松使用他们的服务。不同的定价方案可满足不同需求,确保用户使用的灵活性。
观看支持开源作者的广告,谢谢。
☕ 请我喝咖啡
如果这个项目对你有帮助,不妨请作者喝杯咖啡 :)
📕 背景
使用requests进行数据采集时,面对需要登录的网站,不得不分析数据包和JS源码,构造复杂的请求,还常常要应对验证码、JS混淆、签名参数等反爬手段。门槛高,开发效率低。 使用浏览器可以在很大程度上绕过这些坑,但浏览器的效率不高。
因此,本库的初衷是将它们合二为一,同时实现"快写"和"快跑"。可以在需要不同需求时切换相应的模式,并提供人性化的使用方式,提高开发和运行效率。 除了合并两者,本库还封装了网页单元中常用的功能,提供非常简单的操作和语句,让使用者减少对细节的考虑,专注于功能实现。用简单的方式实现强大的功能,让你的代码更加优雅。
之前的版本是通过重新封装selenium实现的。从3.0版本开始,作者从零开始,重新开发了底层,摆脱了对selenium的依赖,增强了功能,提高了运行效率。
💡 理念
简单却强大!
☀️ 特性和亮点
经过长期实践,作者踩过无数坑,所有总结的经验都写进了这个库里。
🎇 强大的自研内核
本库使用完全自研的内核,内置了N多实用功能,并集成和优化了常用功能。相比selenium,它有以下优势:
- 无webdriver特征
- 无需为不同浏览器版本下载不同驱动
- 运行更快
- 可以跨
<iframe>
查找元素,无需切换进出 - 将
<iframe>
当作普通元素对待。获取后可以直接在其中搜索元素,使逻辑更清晰 - 可以同时操作浏览器中的多个标签页,即使标签页未激活也可以操作,无需切换
- 可以直接读取浏览器缓存保存图片,无需使用GUI点击保存
- 可以对整个网页截图,包括视口外的部分(90及以上版本浏览器支持)
- 可以处理非open状态的shadow-root
🎇 亮点功能
除了上述优势外,本库还有众多内置的人性化设计。
- 极简的语法规则。集成大量常用功能,让代码更加优雅
- 定位元素更容易,功能更强大稳定
- 无处不在的等待和自动重试功能。让不稳定的网络更易掌控,程序更稳定,写起来更放心
- 提供强大的下载工具。在操作浏览器时也可以享受快速可靠的下载功能
- 允许重复使用已打开的浏览器。无需每次都从头启动浏览器,调试非常方便
- 使用ini文件保存常用配置并自动调用,提供便捷设置,远离繁琐的配置项
- 内置lxml作为解析引擎,解析速度提高数个数量级
- 使用POM模式封装,可直接用于测试,易于扩展
- 高度集成便捷功能,体现在每个细节中
- 细节众多,此处不一一列举。欢迎在实际使用中体验:)
🖐🏻 免责声明
请勿将DrissionPage应用于任何可能违反法律法规和道德约束的工作。请友善地使用DrissionPage,遵守爬虫协议,不要将DrissionPage用于任何非法目的。如果您选择使用DrissionPage,这意味着您遵守本协议。作者不承担任何因您违反本协议而造成的法律风险和损失。您将对所有后果负责。