尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
OpenCLI 东方财富热股榜实战:复用已登录浏览器在终端抓取 A 股热门股票
OpenCLI 东方财富热股榜实战复用已登录浏览器在终端抓取 A 股热门股票【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLI本文围绕 OpenCLI 仓库中eastmoney东方财富浏览器适配器的核心命令hot-rank展开讲解如何基于已登录的 Chrome 浏览器在终端一键获取东方财富股吧热股榜热门股票排行数据。读完本文你将掌握opencli eastmoney hot-rank的完整用法、--limit与-f输出参数的控制方式、输出字段的语义以及该命令在仓库中的注册、执行与测试全链路实现细节。一、适配器概览eastmoney 与 hot-rank 命令eastmoney是 OpenCLI 面向东方财富Eastmoney行情数据站点的一族适配器官方说明文档位于 docs/adapters/browser/eastmoney.md其中定义的模式为Mode Browser浏览器模式需要登录态 CookieDomainguba.eastmoney.com东方财富股吧其对外暴露的核心命令为命令说明opencli eastmoney hot-rank东方财富热股榜Eastmoney hot-stock ranking在 docs/adapters/index.md 的适配器清单中eastmoney与tdx通达信、ths同花顺同属热股榜类浏览器适配器且都只提供hot-rank这一个命令。热股榜本质是东方财富股吧根据股票讨论热度、粉丝关注度形成的排名常被用来快速感知当日市场情绪与资金关注焦点适合行情监控、投研辅助与量化选股的冷启动候选池等场景。二、环境准备与前置条件hot-rank属于 Browser 模式命令运行前需要满足文档列出的前置条件Chrome 扩展已安装并连接OpenCLI 通过轻量级 Browser Bridge 扩展加本地守护进程daemon连接 Chrome/Chromiumdaemon 会在需要时自动启动。安装方式有两种从 Chrome Web Store 安装 OpenCLI 扩展下载opencli-extension-v{version}.zip后在chrome://extensions开启开发者模式、加载已解压的扩展文件夹。至少访问过一次guba.eastmoney.com让浏览器中填充目标站点的 Cookie命令运行时才能拿到有效的登录态/会话上下文。CLI 本体安装全局安装jackwener/openclinpm install -g jackwener/opencli并用opencli doctor验证扩展与 daemon 连接状态多 Chrome 配置时可通过opencli profile list/opencli profile use指定使用的配置。完成以上步骤后即可运行命令。三、命令用法从默认榜到定制输出文档给出的核心用法如下# Top 20 hot stocks (default) opencli eastmoney hot-rank # Top 50 hot stocks opencli eastmoney hot-rank --limit 50 # JSON output opencli eastmoney hot-rank -f json不带任何参数时返回热股榜前20条默认值--limit 50将返回数量扩展到 50 条-f json切换为 JSON 结构化输出方便被脚本、Agent 或 LLM 直接消费。除上述文档示例外结合命令注册与 CLI 桥接层hot-rank还继承了若干通用选项。从 src/commanderAdapter.ts 的注册逻辑可见每个适配器子命令都会被挂上以下全局选项选项取值默认说明-f, --format fmttableplainjsonyamlmdcsvtable输出格式--trace modeoffonretain-on-failureoff失败时保留浏览器 trace-v, --verbose布尔false调试输出由于hot-rank是浏览器命令还额外支持浏览器会话相关选项同样来自 src/commanderAdapter.ts--window mode浏览器窗口模式foreground/background--site-session mode站点会话生命周期ephemeral/persistent--keep-tab bool命令结束后是否保留浏览器标签租约。因此实际可组合出如opencli eastmoney hot-rank --limit 30 -f yaml --window background这样的调用用于无人值守的批量采集。四、参数与输出字段详解4.1--limit参数参数类型默认值说明--limitint20返回数量number of rows to return在源码 clis/eastmoney/hot-rank.js 中该参数被声明为{ name: limit, type: int, default: 20, help: 返回数量 }。执行结束时采集到的数据会执行data.slice(0, kwargs.limit)即热股榜原始数据先全部解析出来再按limit截断返回所以limit只影响返回条数上限不影响页面上解析出的真实热度排序。4.2 输出列文档定义的标准输出列为rank·symbol·name·price·changePercent·heat·url各字段语义如下列含义来源说明依据 hot-rank.js 解析逻辑rank榜单排名按解析顺序自增且同一股票只计一次见去重逻辑symbol股票代码6 位从行内a.stock_code链接的 href 中正则提取(\d{6})name股票名称优先取td.nametd a[title]的title属性否则取该单元格清洗后的文本price最新价取第 7 个单元格tds[6]的清洗文本changePercent涨跌幅取第 9 个单元格tds[8]的清洗文本heat热度/人气值取td.fans单元格文本如28.5万这类人气计量url个股股吧链接由https://guba.eastmoney.com/list,{symbol}.html拼接生成price与changePercent的取值依赖表格列序索引 6、8这说明解析逻辑与东方财富guba.eastmoney.com/rank/页面的table.rank_table列布局强耦合若页面结构变更需要同步更新适配器中的列索引。五、源码级原理命令如何被注册与执行5.1 命令注册与策略声明hot-rank的完整定义在 clis/eastmoney/hot-rank.jscli({ site: eastmoney, name: hot-rank, access: read, description: 东方财富热股榜, domain: guba.eastmoney.com, strategy: Strategy.COOKIE, navigateBefore: true, args: [ { name: limit, type: int, default: 20, help: 返回数量 }, ], columns: [rank, symbol, name, price, changePercent, heat, url], func: async (page, kwargs) { /* ... */ }, });关键点逐一拆解strategy: Strategy.COOKIE在 src/registry.ts 中Strategy枚举定义了PUBLIC、LOCAL、COOKIE、INTERCEPT、UI五种。COOKIE表示命令需要在浏览器中携带目标站点 Cookie 的会话上下文。navigateBefore: true表示需要已认证的浏览器上下文但由适配器自行负责页面导航不强制预导航到 domain。执行时由func内部主动page.goto(https://guba.eastmoney.com/rank/)。需要说明的是在 src/registry.ts 的normalizeCommand中若未显式声明navigateBeforeCOOKIE策略配合domain会自动推导为预导航到https://{domain}此处显式设true即覆盖了默认行为。access: read命令为只读操作注册时会经过assertCommandAccess校验必须为read | write之一。5.2 页面抓取与数据解析流程func的执行流程见 clis/eastmoney/hot-rank.js可归纳为四步导航page.goto(https://guba.eastmoney.com/rank/)直达热股榜页面。等待渲染page.wait({ selector: #rankCont, timeout: 15000 })等待榜单容器#rankCont出现超时上限 15 秒避免榜单异步加载导致选择器落空。DOM 内联解析通过page.evaluate在页面上下文内执行脚本遍历table.rank_table tbody tr所有行从a.stock_code的href中提取 6 位股票代码提取失败的行直接跳过用Set记录已见股票代码同一股票在榜上出现多次时仅保留首条rank 只自增一次逐行抽取名称、价格、涨跌幅、热度并拼接个股股吧 URL。结果规整若evaluate返回值不是数组例如页面异常时返回null则兜底返回[]否则slice(0, kwargs.limit)截断后返回。文本清洗统一使用cleanText将元素textContent中的连续空白压缩为单空格并trim保证输出列的格式一致性。5.3 输出渲染链路命令执行结果经由 src/commanderAdapter.ts 的executeCommand与renderOutput渲染columns元数据驱动表格/CSV/Markdown 的列头生成-f json则输出结构化数组。这意味着只要热股榜返回的是列语义稳定的对象数组输出格式切换无需改动适配器本身。六、测试验证四个用例覆盖注册与行为仓库为hot-rank提供了完整的单元测试 clis/eastmoney/hot-rank.test.js用 Vitest 对命令进行 mock 验证注册元数据校验断言命令已注册到 registry且site、name、description包含东方财富、domain、navigateBefore与声明一致。正常返回热股数据mockpage.goto/wait/evaluate验证返回结果与 mock 数据一致并断言goto的入参为https://guba.eastmoney.com/rank/。测试中使用的示例数据形如{ rank: 1, symbol: 600519, name: 贵州茅台, price: 1680.00, changePercent: 2.35%, heat: 28.5万, url: https://guba.eastmoney.com/list,600519.html }这同时直观展示了各输出列的字段形态价格带两位小数、涨跌幅带正负号与百分号、热度带中文单位、URL 为股吧列表页。limit参数生效构造 30 条 mock 数据后传入{ limit: 10 }断言结果长度恰为 10。异常兜底evaluate返回null时结果应为空数组[]。这四个用例分别覆盖了注册正确性、主流程、参数语义、异常防护可作为复刻或扩展同类榜单适配器的测试范式。七、延伸eastmoney 适配器家族与复用建议hot-rank只是东方财富适配器家族的一员。从目录 clis/eastmoney 可见该站点还沉淀了覆盖行情、K 线、龙虎榜、资金流、公告、快讯等能力的适配器例如quote.js批量报价、kline.jsK 线历史、longhu.js龙虎榜、holders.js十大股东、kuaixun.js7x24 快讯、announcement.js公司公告、northbound.js北上资金等。若需要围绕热股榜做深度分析可以组合这些命令形成完整链路。面向适配器开发者的站点知识沉淀在 skills/opencli-adapter-author/references/site-memory/eastmoney.md其中记录了东方财富各业务域域名push2.eastmoney.com行情列表、push2his.eastmoney.comK 线、datacenter-web.eastmoney.com报表、np-listapi.eastmoney.com快讯、np-anotice-stock.eastmoney.com公告等、utbd1d9ddb04089700cf9c27f6f7426281公共 token、各 endpoint 的必需参数如fs、fields、secids、klt、fqt以及易踩的坑fltt2必传否则价格字段是int × 10^f152的整数表示资金流单位混乱f6是元f62/f66等返回万元需核对单条接口港股代码00700.HK不是合法 secid不要误拼前缀datacenter-web字段名是大写SECURITY_CODE。代码解析工具位于 clis/eastmoney/_secid.jsresolveSecid(input)负责把600000、sh600000、bj430047、hk00700、us.AAPL等各类输入统一转换为东财secid市场前缀.代码splitSymbols(s)负责按逗号/空格/中文逗号拆分批量参数。新写 eastmoney 适配器时官方建议照最像的模板 copy只改name、URL 参数、字段映射三处。八、常见问题与排查结合 README.md 的故障排查章节eastmoney hot-rank运行失败时优先检查Extension not connectedBrowser Bridge 扩展未安装或被禁用到chrome://extensions确认扩展已启用Cookie 未填充若返回空榜或鉴权错误先手动在浏览器中打开一次guba.eastmoney.com让对应 Chrome 配置写入 Cookie页面结构变化price/changePercent依赖固定列索引、榜单依赖#rankCont与table.rank_table选择器若东方财富改版导致解析不到数据需要同步更新 clis/eastmoney/hot-rank.js 中的选择器与索引多 Chrome 配置混淆使用opencli profile list查看已连接配置用opencli profile use alias指定目标配置后再执行命令。总体而言eastmoney hot-rank是理解 OpenCLI浏览器模式 COOKIE 策略适配器工作机制的最小而完整的范本从命令声明、DOM 采集、字段规整到输出渲染与测试覆盖全链路均可在仓库源码中直接印证。【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

ESP32健康监测实战:MAX30102心率采集与OLED实时显示

ESP32健康监测实战:MAX30102心率采集与OLED实时显示

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/19 11:18:24
通达信强拉升指标公式源码:突破、量比、均线排列与盘中预警

通达信强拉升指标公式源码:突破、量比、均线排列与盘中预警

简介:这是一份面向通达信软件使用者的技术指标公式源码文档,适合有一定看盘基础、希望自主识别个股强势拉升信号的投资者参考。文档围绕“强拉升”信号展开,完整给出用于衡量上涨强度、价格相对位置、安全度与趋势方向的指标计算逻辑&#xf…

📅 2026/9/19 11:18:24
Open FPV VTX与Betaflight的MSP协议深度对齐指南

Open FPV VTX与Betaflight的MSP协议深度对齐指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/19 11:18:24
MORE NEWS

更多资讯

📰

Traefik v3 的 Gateway API 路由报错?TaoToken 让 Codex 这样改配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

HS2-HF_Patch安装故障排查清单:杀毒误报、分卷下载不全、日文路径错误一次搞定

HS2-HF_Patch安装故障排查清单:杀毒误报、分卷下载不全、日文路径错误一次搞定 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch&#x…

📰

使用 Terraform AWS Provider 查询 Lambda Code Signing Config 数据源:配置项、属性与源码实现解析

使用 Terraform AWS Provider 查询 Lambda Code Signing Config 数据源:配置项、属性与源码实现解析 【免费下载链接】terraform-provider-aws The AWS Provider enables Terraform to manage AWS resources. 项目地址: https://gitcode.com/GitHub_Trending/te/t…

📰

彻底禁用Chrome自动更新:Windows/macOS/Linux全平台实战指南

说实话,我不是第一次跟“Chrome 自动更新”较劲了。前两年帮朋友维护一批内网测试机,系统用的是 Win10 LTSC,稳定性没话说,唯独 Chrome 会在某天夜里自己偷偷升级。早上过来开机,浏览器从 109 突然跳到了新版本&#x…

📰

Visual Studio 2022保姆级安装指南:从版本选择到环境验证

拿到新电脑或者重装系统之后,第一件事往往就是装开发环境。而Visual Studio 2022(后面我直接叫VS2022)对Windows开发者来说,基本是绕不开的一个IDE。无论是写C#、C、Python,还是做Web前端、桌面客户端、游戏开发&#…

📰

OpenCLI Mercury 适配器实战:用浏览器桥接驱动 Mercury 报销草稿的安全写入

开发工具CLI人工智能AI 应用浏览器控制GUI 自动化 【免费下载链接】OpenCLI Make Any Website into CLI & Use your logged-in browser by AI agent. 项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLI 点击查看 免费下载 导读 本文围绕 OpenCLI 仓库中…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬