browser-harvest

Featured

从需要登录的浏览器后台批量抓表格数据——SEO 面板、分析后台、广告平台、任何没有 API 或 API 要加钱的 SaaS 报表。解决四个必踩的坑:虚拟滚动表格没有 <table> 标签、数据出不了页面沙箱、执行通道超时、后台标签不渲染。用户提到 抓后台数据、导出报表、这个面板能不能自动化、批量查词、扒竞品数据、没有 API、导出要花钱/扣点数、爬虫抓不到表格、表格是 div 不是 table、把这个流程自动化 时使用本 skill。也在任何"要在登录态网页里重复取数"的任务中主动使用——第一次跑通就该固化成脚本,不要下次重新摸索 DOM。

Web & Frontend 203 stars 88 forks Updated today MIT

Install

View on GitHub

Quality Score: 88/100

Stars 20%
77
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# browser-harvest — 从登录态后台批量取数 很多值钱的数据在 SaaS 后台里:没有 API,或者 API 单独收费,或者导出按行扣点数。 界面就在那儿,人能看见,脚本却拿不到。本 Skill 解决的就是这段路。 **适用**:SEO/分析/广告/电商后台的报表页,需要登录态,数据以表格或列表呈现。 **不适用**:有开放 API 的服务(直接调 API)、静态公开页面(普通抓取即可)。 ## 零、先决条件:必须用用户的真实浏览器 登录态在用户的浏览器里。任何"干净"的无头浏览器都没有会话,跑起来只会看到登录页。 - 用能连接用户真实浏览器的工具(Claude in Chrome 一类的浏览器扩展通道)。 - 内置的、隔离的预览浏览器**没有登录态**,不要用它去开后台。 - 如果同时存在两套浏览器工具,开工前明确说明用的是哪一套,别让用户以为你在他的浏览器里操作、实际却在一个空环境里空转。 ## 一、四个必踩的坑 ### 1. 现代后台的表格不是 `<table>` 高性能数据网格普遍用虚拟滚动:DOM 里只有可视区那几十行,而且常是**列式**结构—— 行号、名称、数值各在自己的容器里。`querySelectorAll('tr')` ��回 0,`role="row"` 也常常没有。 **解法:按屏幕坐标重建行。** 取所有叶子元素的 `getBoundingClientRect()`,按 Y 聚类,行内按 X 排序。 两个关键细节: - **锚点要选稳定的那一列**。用行号列做锚点会漏行(实测 100 行漏 23 行,因为行号单元格 和其它单元格偶尔落进不同的 Y 分桶)。改用**内容主列**(名称/关键词那一列)做锚点, 再收同一 Y ±11px 的其它单元格,才能 100% 还原。 - **一定要限定扫描范围**。整个 `document` 扫 `div,span,a` 单次约 2 秒,滚动循环几十次就爆超时; 改用 `TreeWalker` 且只在滚动容器内走,实测降到 **6ms**(快 300 倍)。写循环前先量单次耗时。 不同报表的列位不一样。写死 x 区间的版本换一张表就错位,**默认用列位自适应**(纯按 Y 聚类, 不假设任何列的 x)。 **URL 列是例外,必须从 `href` / `title` 属性读,不能从文本读。** 长 URL 在单元格里会换行成两行 并加省略号:文本本身是截断的,而且换行让这个单元格跨两个 Y 分桶,坐标法会把整行拆散、 再被 `minCells` 过滤掉——**这一类行会静默整批消失**。实测某报表 100 行里 78 行是长 URL, 坐标法只回收到 18 行,没有任何报错,肉眼看输出也很正常。属性里存的是完整 URL,一次全拿到 (用 `grabLinks()`)。判据:如果某报表的"页面/网址"列在结果里明显偏少,先怀疑这一条。 ### 2. 数据出不了页面沙箱 页面里的 JS 能看到数据但**没有文件系统**;你的 shell 能写盘但**没有登录态**。中间只有三条通道: | 通道 | 实测 | |---|---| | 代码执行工具的返回值 | 约 1KB 就截断,几十 KB 的表要分十几次取,慢且易错 | | 剪贴板 `navigator.clipboard.writeText` | 常报 `NotAllowedError: Document is not focused`,还会把执行通道卡到超时 | | **Bl...

Details

Author
yan-labs
Repository
yan-labs/yan-skills
Created
2 months ago
Last Updated
today
Language
JavaScript
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

opencli

用 OpenCLI 驱动用户本机那个真实的、已登录的 Chrome,或调用它的 160+ 站点 adapter。任何需要登录态的页面操作都从这里开始——读登录后的后台、抓没有 API 的表格、填表提交、跑一个站点命令、把页面数据取回来。也覆盖会话命名与租约纪律("我的标签页被别人抢了")、批量取数与落盘、adapter 的编写与自修复、opencli doctor 排障。用户提到 opencli、浏览器自动化、用我的浏览器、驱动 Chrome、登录态、抓后台数据、抓表格、导出报表、填表、自动点击、截图、adapter、doctor 报错、session 撞名、标签页被抢、tab 泄漏,或说"打开这个页面看看""帮我登录后台查一下""这个站没有 API"时,务必使用本 Skill。也在需要判断"这件事该不该开浏览器"时使用——本 Skill 第零节就是那张判断表(要不要登录态、有没有现成脚本或 adapter、配额站能不能动手、什么时候该转给 agent-reach 或业务 Skill)。只要动作会落在浏览器上,先读这里再动手。

203 Updated today
yan-labs
Data & Documents Listed

single-file-dashboard

把表格数据做成"一个 HTML 文件就是全部"的可传播看板——双击即开、离线可用、密码访问、数据加密、单元格就地可改、图表用原生 SVG 手绘。当交付物需要靠邮件/U盘/共享文件夹在同事之间传、且对方电脑上不能装任何东西时使用。也用于需要把经营数据锁在本地不外发的场景。

1 Updated yesterday
1231Johnny
Data & Documents Listed

web-table-pay

把一个网址上的数据整理成一张能直接用的 Excel——一次付费 7 天不限次,期内重复使用不再计费。凡遇到"这个页面的数据要导成表""榜单/列表/报表只能一条条复制""网页上的数字要拿去做统计""数据在页面上但导不出来""这份名单每天都要重新取一遍"时主动使用。**本 Skill 依赖在线授权服务**:执行提取前会先取一份授权凭证(未付费会返回 402 账单),拿到授权后在**你本机**完成取数与成表,授权本身**离线可校验**;诊断(probe)**免费**——先看清楚数据在哪、能不能取,再决定要不要提取。能力:页面自带表格的直接读;数据由脚本渲染的页面 → 先定位它真正读取的数据地址再取;只有重复区块的页面 → 按块成表。产出规范 xlsx + 一份带前后对比计数的**提取报告**(适合直接转发)。上游声明总数与实收不一致时**拒绝写出**(不交半份数据)。只读公开可读页面:不带登录凭据、不做身份伪装,站点拒绝或要求验证码即停止并说明。

0 Updated 5 days ago
Mao-jh