browser-harvest

Featured

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

Web & Frontend 185 stars 81 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 87/100

Stars 20%
76
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
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`,还会把执行通道卡到超时 | | **Blo...

Details

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

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

rankup

网站从零到一与长期增长的总控 Skill。用于新建网站、SaaS、工具站或内容站,规划或初始化 TanStack Start Monorepo,使用 Cloudflare Workers、D1、R2 部署全栈应用,接入支付,执行 SEO、内容、外链、上线验证和持续迭代;也负责 Google Trends 查询、关键词难度(KD)估算与选词工作流;2026 AI 搜索范式(AI Overviews、AI Mode、Preferred Sources、Discover 独立算法、Information Gain、引用优先于排名);AI Agent 就绪度评分(is-agentic、agent readiness、llms.txt、MCP 可发现性、AI 代理优化)。用户提到 rankup、rankup init、建站、网站改版、搜索流量、GSC、排名、关键词、CTR、索引、网站增长,或提到 谷歌趋势、Google Trends、搜索热度、热度对比、搜索趋势、trending、"XX 和 YY 哪个更火"、"今天美国/日本在搜什么"、每日热搜、"这个词能不能做站"、"哪个市场/国家有机会"、帮我选 SEO 关键词、选词、选品调研、市场探测、挖需求、找需求、需求挖掘、找方向、找选题、"最近有什么能做的"、"找几个关键词"、"挖个新词的工具站"、"看看有什么游戏站能做"、竞品调研、榜单调研、差评挖掘、反查谁在赚钱、关键词难度、KD、竞争度、SERP 分析、"这个词难不难做"、"做这个词要多少外链",或提到 哥飞、web.cafe、哥飞论坛、哥飞的朋友们、悬赏、悬赏问答、经验帖、"群里怎么说的"、"社群里有没有讲过"、"论坛里搜一下"、"哥飞说过什么"、哥飞.ai,或提到 AI 搜索优化、AI Overviews、AI Mode、被 AI 引用、AEO、GEO、Preferred Sources、Discover 优化、Google 算法更新、核心更新、spam 更新、Information Gain,或提到 AI Agent 就绪度、is-agentic、agent readiness、llms.txt、对 AI 代理友好、AI 代理优化、agent-friendly、agentic score 时使用。

185 Updated yesterday
yan-labs
AI & Automation Featured

opencli

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

185 Updated yesterday
yan-labs
Web & Frontend Listed

website-visuals

解码任意网站或设计截图的视觉与排版系统(品类中立:B2B、SaaS、DTC、内容站皆可),用固定 schema 产出可跨站对比的档案并存进 humaux;支持从参考站反推客观阈值、再据此判自己的站是否"堆砌"。当用户给出网址、贴出网页/设计截图、或说"解析/拆解/逆向/学一下这个站"、"这个设计怎么做的"、"为什么这个好看"、"对比我们和 XX"、"扒一下配色/排版"时,必须使用本 skill——即使用户没说 skill、解码、decode 这些词。也用于检索"我们解码过哪些站""XX 的间距比是多少""哪些参考是 B2B 的"。

1 Updated 3 weeks ago
luogangan7-lgtm