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

ruyiPage 框架解读/刨析

ruyiPage 框架解读/刨析

1. 项目定位与核心价值

ruyiPage下一代 Python Web 自动化过检测框架,专为AI 分析 + 高风控数据采集场景设计。

  • 核心技术路线Firefox + WebDriver BiDi 协议(完全放弃 CDP)。
  • 最大亮点
    • 大量原生isTrusted: true动作链。
    • 支持构造多种 JS 事件并附加ruyi: true标记,让事件更接近真实用户行为。
    • 支持直接接管 ADS、比特浏览器等 Firefox 内核指纹浏览器。
    • 实战中可稳定通过 Cloudflare 5s 盾、hCaptcha、DataDome、Outlook/Gmail、bet365 等高风控站点。

一句话总结:它不是追求“跨浏览器万金油”,而是在 Firefox 一条路上把反检测做到极致,更适合需要长时间稳定运行、真实交互的高风控场景。

2. 项目仓库整体结构

ruyipage(仓库根目录) ├── ruyipage/ # ← Python 包核心源码(你截图里的内容) ├── examples/ # 46+ 个教学示例(最推荐的学习资料) ├── quickstart_*.py # 3 个最简上手脚本(强烈建议先跑) ├── tests/ # 测试用例 ├── scripts/ # 辅助脚本 ├── images/ # README 用图 ├── README.md / README_EN.md ├── pyproject.toml └── requirements.txt

3. 源码包ruyipage/详细解读(严格按你的截图顺序)

顺序模块/文件核心职责学习重点
1_adapterBiDi 协议适配器层把原始协议命令/事件翻译成框架内部对象
2_async异步 API 实现greenlet桥接,实现同步/异步双风格
3_base基类与抽象接口BasePageBaseElement
4_bidiWebDriver BiDi 协议核心WebSocket 连接、命令发送、事件监听(最底层、最重要)
5_configs配置管理FirefoxOptions所有启动参数处理
6_elements元素定位与操作ele()eles()、Shadow DOM、iframe、XPath Picker
7_functions通用函数库bezier/windmouse 拟人算法、事件构造、ruyi:true注入
8_pagesFirefoxPage主实现导航、动作链、网络拦截、下载、截图等高层 API
9_units最小功能单元Cookie、下载、事件监听器等小组件
10__init__.py包入口对外暴露FirefoxPagelaunch()
11aio.py异步快捷入口from ruyipage.aio import launch
12common.py公共常量、枚举全项目共享
13errors.py自定义异常更友好的错误提示
14version.py版本号__version__

架构设计特点:采用分层 + 私有模块(下划线前缀),底层协议与高层 API 高度解耦,便于维护和扩展。

4. 安装与快速上手(官方推荐顺序)

pipinstallruyiPage--upgrade# 异步支持pipinstallruyiPage[async]--upgrade

最简同步启动

fromruyipageimportFirefoxPage page=FirefoxPage()page.get("https://www.example.com")print(page.title)page.quit()

推荐新手入口launch()函数(支持大部分常用参数)。

5. 核心竞争力(官方重点强调)

  • 真实事件:原生 BiDi +ruyi: true标记 →isTrusted更真实。
  • 拟人行为:内置 bezier + windmouse 鼠标轨迹(human_movehuman_clickhuman_type)。
  • 浏览器接管attach已打开的 Firefox / 指纹浏览器(几乎零启动延迟)。
  • 指纹配合--fpfile+firefox-fingerprintBrowser实现可控指纹。
  • 网络控制:完整请求/响应拦截、Mock、数据采集。
  • 调试工具:XPath Picker + 动作可视化(enable_action_visual=True)。

6. 学习路线推荐(最快上手路径)

  1. 10 分钟入门:跑根目录 3 个quickstart_*.py
  2. 1 小时基础examples/00_quickstart.py06_screenshot.py
  3. 核心反检测(必看):
    • 45_js_setter_untrusted_input.pyisTrusted对比)
    • 46_human_behavior_showcase.py(拟人行为完整展示)
    • 39_attach_exist_browser.py(接管外部浏览器)
    • 42_xpath_picker_complex_showcase.py
  4. 高阶37_three_isolated_user_context_tabs.py(user-context 隔离)

7. 配套生态(官方强烈推荐)

  • firefox-fingerprintBrowser:指纹浏览器内核
  • ruyipage-skill:AI Agent Skill
  • ruyipage-js / ruyipage-go:多语言实现

总结
ruyiPage 是一个专注 Firefox + BiDi + 真实交互的高风控自动化框架。它牺牲了跨浏览器兼容性,换来了更低的检测面和更真实的交互能力。目前在 Python + Firefox 这条赛道上属于窗口期很好的方案。


拓展科普

✅ BiDi vs CDP 全面科普(通俗易懂版)

1. 什么是 CDP(传统方案)

CDP = Chrome DevTools Protocol

  • 诞生背景:Chrome 官方提供的调试协议,最初是为了 Chrome DevTools(F12 开发者工具)而生。
  • 工作方式:通过 WebSocket 连接 Chrome 的调试端口(9222 等),发送 JSON 命令。
  • 目前地位:Selenium、Playwright、Puppeteer 等主流自动化框架最常用的协议。

优点

  • 功能极其强大(几乎能控制 Chrome 的所有内部功能)。
  • 生态成熟,文档丰富。
  • 支持 Chrome / Edge / 新版 Edge 等 Chromium 内核浏览器。

致命缺点(高风控场景容易被检测):

  • 暴露特征明显:浏览器里能检测到window.CDPnavigator.webdriver等自动化痕迹。
  • 事件不可信:模拟的点击、输入事件isTrusted大多为false(网站能轻易识别是脚本操作)。
  • 协议层指纹:很多风控直接检测是否连接了 CDP。
  • 行为不自然:线性鼠标移动、瞬时点击,容易被行为分析模型识别。

2. 什么是 BiDi(新一代方案)

BiDi = WebDriver BiDirectional Protocol(WebDriver 双向协议)

  • 诞生背景:W3C 标准组织推出的下一代 Web 自动化协议(2023-2025 年逐渐成熟)。
  • 全称:WebDriver Bi-Directional Protocol。
  • 核心理念双向通信—— 浏览器既能接收命令,也能主动推送事件给自动化脚本。

目前支持情况

  • Firefox 原生支持最好(ruyiPage 就是基于此)。
  • Chrome / Edge 也在逐步支持(但还不完善)。

3. BiDi vs CDP 详细对比表

维度CDP (传统)BiDi (新一代)谁更优(高风控场景)
协议标准Chrome 私有协议W3C 公开标准BiDi 更规范
浏览器支持Chromium 系(Chrome/Edge)最佳Firefox 原生最佳,Chrome 逐步支持BiDi(Firefox 路线)
事件真实性isTrusted大多为 false原生支持isTrusted: trueBiDi 完胜
检测难度极易被检测(CDP 特征明显)检测难度大幅提升BiDi 完胜
性能较好更好(双向通信更高效)BiDi 略胜
功能完整度目前最完善正在快速追赶(2025-2026 已很强)CDP 暂时领先
鼠标/键盘行为模拟痕迹明显支持构造真实 MouseEvent / InputEventBiDi 完胜
ruyiPage 特色-可额外附加ruyi: true标记BiDi 专属
学习难度较低稍高(协议较新)-

4. 为什么 ruyiPage 选择 BiDi?

  1. 规避 CDP 检测:很多风控(Cloudflare、DataDome 等)已把 CDP 作为重要检测特征。
  2. 事件真实性:BiDi 可以直接构造浏览器原生事件,isTrusted为 true,极大提升过检测概率。
  3. 未来趋势:W3C 标准,长期看 CDP 会逐渐被 BiDi 替代。
  4. Firefox 路线更干净:Firefox 对自动化特征隐藏得比 Chrome 更好。
http://www.jsqmd.com/news/703983/

相关文章:

  • HyperFrames:用代码生成视频
  • Snap.Hutao原神工具箱:解决玩家痛点的专业桌面助手
  • LSTM中TimeDistributed层的原理与应用实践
  • 多智能体辩论能提高正确率吗:实验方法与结论解读
  • 如何快速掌握FloPy:新手必知的5个高效建模技巧
  • RimWorld模组管理器终极指南:3步告别模组冲突,轻松管理200+模组
  • ComfyUI-SUPIR 内存访问冲突深度解析:3221225477系统崩溃问题的多维度解决方案
  • 如何快速掌握CREST分子构象搜索:新手完全指南与实战技巧
  • 百年医德一心为齿 —— 义乌王萍口腔品牌合规实力全解析 - 速递信息
  • 保姆级教程:在Qt5嵌入式Linux设备上实现流畅的触摸屏地图浏览(双指缩放+单指拖动)
  • 小林计算机网络|模型篇 + 应用篇 全图解
  • 忍者像素绘卷微信小程序落地:教育机构‘忍者编程课’像素教具生成工具
  • 手把手教你用eNSP模拟华为交换机,配合snmp_exporter搭建监控测试环境(保姆级避坑)
  • OpenContracts:构建结构化知识库,实现人类与AI智能体的协同工作
  • 赋予AI“北极星”:如何让智能体自主设定并追踪目标
  • 2026 年全球范围主流且较难绕过的反 bot / 反爬防护
  • 硅光子储层计算:突破AI硬件加速新范式
  • 如何快速为Unity游戏添加自动翻译:XUnity.AutoTranslator完整指南
  • Unity PSD导入引擎深度解析:高性能图像解析架构与工作流优化方案
  • 用文言文和AI聊天省30%算力费用,这届年轻人的省钱思路太野了
  • 2026年延吉管道疏通/卫生间管道疏通/下水道管道疏通公司热门榜排名,优选延吉鹏程疏通 - 速递信息
  • 探索Osiris:基于Panorama UI的CS2跨平台游戏增强框架实践
  • 技术解析:跨平台CS2游戏增强框架如何实现零依赖高性能架构
  • 机器学习五大核心方向与工程实践解析
  • BetterJoy:让Switch手柄在PC上完美工作的终极解决方案
  • 如何用MAA明日方舟助手彻底解放游戏时间?终极自动化攻略指南
  • 口碑好的济南除甲醛公司,哪家更专业? - 速递信息
  • Refined Now Playing:网易云音乐美化插件终极指南
  • 多智能体协作框架:让LLM像人类团队一样开会与决策
  • SAP SD模块实战:用CVI_EI_INBOUND_MAIN和CL_MD_BP_MAINTAIN批量创建客户主数据(附完整ABAP代码)