Web Session Miner(网页登录态数据挖掘器·通用版)
一句话定位
当某个网站同时提供「官方 MCP / 开放平台 API(按次·积分计费)」和「网页版(会员/免费展示)」 两套入口时,本 SKILL 复用你已登录浏览器的登录态,驱动真实浏览器抓取网页版数据, 用你已付费的会员权益零 API 成本拿到全量深度数据。
这是「企查查浏览器抓取」案例的通用化抽象。它不绑定任何单一网站——凡是满足 「MCP + 网页版并存」这一条件的站点,都可以通过写一个「站点适配器(recipe)」接入。
核心认知:双轨计费,如何零 API 成本采集已授权数据
许多 SaaS 数据服务采用「双轨计费」:
| 轨道 | 你买到的是什么 | 计费方式 |
|---|---|---|
| 网页版会员(SVIP/VIP/Pro) | 在网页/App 内无限次查看深度字段的权益 | 订阅制(包月/包年) |
| 开放平台 API / MCP | 程序化调用数据的次数 | 按次 / 积分制 |
两套计费互不相通:你买了网页版会员,通常不含 API 调用额度。于是——用浏览器 复用你网页版会员的登录态去抓数据,就是「用已付费的会员权益,零 API 成本拿数据」。
⚠️ 合规边界(使用前必读)
本 SKILL 是「高效采集你自己已授权数据」的效率工具,仅限以下范围:
- ✅ 只抓取你自己账号有权查看的数据(你已付费/已授权的会员权益内)。
- ✅ 遵守目标网站服务条款(ToS)与 robots 协议,控制抓取频率。
- ❌ 禁止绕过付费墙获取未授权数据、大规模商业爬取、以及任何违法用途。
- ⚠️ 使用者对自身行为负责;本工具不用于「破解付费墙」。
前置条件
bskCLI 在 PATH(browser-skill 套件),Chromium 扩展已连接(bsk status显示browsers connected 1)。若bsk命令不存在或扩展未连接,先引导用户安装/启用 browser-skill(WorkBuddy 插件市场),不要盲目继续抓取。- 目标网站已在浏览器中登录(复用现有登录态,无需重新扫码)。
通用五步法(对任意目标站点)
- 识别计费结构 — 确认该站点是否「网页版会员权益」与「MCP/API 按次计费」分离。 判据:MCP 连接器按次扣积分、网页版却能用会员账号无限看。
- 建立登录态 —
bsk session start,agent 标签天然继承浏览器 cookies,无需重新登录。 - 页面侦察 — 摸清该站点的「URL 规律」和「数据 DOM 结构」:
bsk snapshot看结构,bsk evaluate "document.body.innerText"取全文本。 - 数据定位 — 找到目标数据所在的容器/表格/字段(详见各站点适配器)。
- 抓取与结构化 — 提取 → 解析 → 输出 JSON 或 HTML 报告 →
bsk session stop。
核心原则:每个站点的「变体细节」都封装在 recipes/ 下的适配器里;五步法本身不变。
接到新任务时,先看有没有对应 recipe,没有就按 _template.md 现场写一个。
站点适配器(recipes)机制
recipes/ 目录下,每个站点一个 Markdown 适配器文件,包含该站点的可变细节:
- 站点名 + 登录态确认方式(如何判断已登录)
- 搜索页 URL 模板 + 详情页 URL 规律(是 md5 哈希还是 ID 直拼?)
- 关键字段的 DOM 定位(表格容器 class、关键词定位法)
- 歧义/同名甄别规则(如何确认是目标对象而非同名者)
- 反爬/风控注意事项(频控、验证码、分页)
已内置:recipes/qcc.md(企查查,未登录可搜索)、recipes/tyc.md(天眼查,搜索强制登录)。
新增站点照 recipes/_template.md 填写即可。
登录门槛差异(重要):不同站点的登录门槛不同,直接决定能否「未登录预搜索」—— 企查查未登录可搜索(弱门槛);天眼查/爱企查搜索即强制登录(扫码)。写 recipe 时, 第 1 节务必先实测该站点的登录门槛,并在「硬前置」里标注。
坑位清单(通用,实测踩过)
- 浏览器会话会失效:bsk session id 会因 Agent Window 被关闭或并行会话/用户手动操作
而反复变化。对策:操作紧凑、报
session not registered立即bsk session list重取 id、 核心数据在稳定 session 里按明确 URL 一次性抓取。 - 详情页 URL 别硬拼 ID:很多站点的详情页 URL 是内部哈希/加密 ID(如企查查用 md5), 硬拼信用代码/自增 ID 会被重定向。必须从搜索结果页提取真实 href。
- 同名/多义词歧义:人物页标题关联的公司 ≠ 其主营业务身份(可能是兼任的上市公司)。 必须用「简介 + 归属 + 关联舆情」多处交叉验证,再下结论。
- 分页点不动:SPA 懒加载分页可能点了不刷新。多次无响应就抓当前页(前 N 条常已够), 并在报告诚实标注「前 N 家 / 共 M 家」。
- 别默认借用用户标签:
bsk tab borrow会打扰用户、常被取消;优先在 agent 标签直接导航。 - navigate 报 RPC 超时 ≠ 页面没加载:
bsk navigate偶发tool RPC timed out,但页面可能 实际已加载完成。别急着重试导航,先bsk evaluate "document.readyState"确认——若已complete且 title 正确,直接继续抓取即可。
输出规范
- 数据忠实:严格引用原始字段值,不推导、不编造;空数据如实报「暂无记录」。
- 单位/日期:金额注明单位;日期用
YYYY-MM-DD。 - 报告格式:先结论 → 结构化表格 → 可视化(默认深色金融风 HTML,ECharts 关系图 + 明细表 + 时间线 + 数据来源脚注)。
- 脚注必备:标注「站点 + 登录态来源 + 抓取时间 + 数据范围(如仅前 N 家)」。
与官方 MCP 的边界
- 本 SKILL(浏览器抓取):批量、深度、零 API 成本,适合大范围采集 + 报告生成。
- 官方 MCP 连接器:按次扣积分,适合少量精确查询(单点查实控人、核验字段), 返回结构更规整、可直接程序化。
- 选择原则:查 1~2 个精确字段走 MCP;批量/图谱/报告走本 SKILL。两者互补。
如何新增一个站点适配器
- 复制
recipes/_template.md为recipes/{站点名}.md。 - 按模板填 6 项:登录态确认 / URL 规律 / 字段定位 / 歧义甄别 / 风控 / 备注。
- 用五步法跑通一次,把实测踩到的坑回填到该 recipe 的「坑位」段。
- 可选:把典型抓取案例追加到该 recipe 末尾,供后来者参考。
