Token导航 LogoToken导航

Agent Skill · 研究检索

actionbook-scraper(行动手册刮刀)

actionbook-scraper 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

actionbook-scraper 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 29,254。

总安装 3,089周安装 130GitHub Stars 1,517下载 1,082核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:actionbook-scraper(行动手册刮刀)
来源仓库:https://github.com/actionbook/actionbook
仓库路径:skills/actionbook-scraper
安装命令:
npx skills add https://github.com/actionbook/actionbook --skill actionbook-scraper
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/actionbook/actionbook --skill actionbook-scraper

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

Actionbook Scraper 用于浏览器自动化、网页内容提取和前端流程验证,支持页面交互与数据抓取任务。适合需要让 Agent 打开网页、读取 DOM 结构或测试用户界面的场景,如表单填写、动态内容加载等。生成的脚本必须通过运行正确性和数据准确性双重校验,确保提取结果真实有效。

需从 GitHub 仓库安装,使用前请确认是否允许执行命令和访问外部网站。注意该技能涉及网络请求和潜在敏感操作,建议在可控环境中部署并限制其作用范围。

来源仓库内路径:skills/actionbook-scraper

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/actionbook/actionbook --skill actionbook-scrap…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

actionbook-scraper 怎么安装?

在终端执行 npx skills add https://github.com/actionbook/actionbook --skill actionbook-scraper。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

actionbook-scraper 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

actionbook-scraper 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

actionbook-scraper 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

actionbook-scraper 用的人多吗?

公开数据是累计安装 3,089 次,近一周安装 130 次,下载 1,082 次,GitHub 1,517 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

actionbook-scraper 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 来源仓库有 1,517 星,维护活跃度相对可查。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
actionbook-scraper

行动手册刮刀 · 本页

3,0891,517操作浏览器未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Actionbook Scraper Skill

⚠️ CRITICAL: Two-Part Verification

Every generated script MUST pass BOTH checks:

CheckWhat to VerifyFailure Example
Part 1: Script RunsNo errors, no timeoutsSelector not found
Part 2: Data CorrectContent matches expectedExtracted "Click to expand" instead of name
┌─────────────────────────────────────────────────────┐
│   1. Generate Script                                │
│          ↓                                          │
│   2. Execute Script                                 │
│          ↓                                          │
│   3. Check Part 1: Script runs without errors?      │
│          ↓                                          │
│   4. Check Part 2: Data content is correct?         │
│      - Not empty                                    │
│      - Not placeholder text ("Loading...")          │
│      - Not UI text ("Click to expand")              │
│      - Fields mapped correctly                      │
│          ↓                                          │
│      ┌───┴───┐                                      │
│   BOTH Pass  Either Fails                           │
│      │           │                                  │
│      │           ↓                                  │
│      │       Is it Actionbook data issue?           │
│      │           │                                  │
│      │       ┌───┴───┐                              │
│      │      Yes      No                             │
│      │       │       │                              │
│      │       ↓       ↓                              │
│      │    Log to   Fix script                       │
│      │    .actionbook-issues.log                    │
│      │       │       │                              │
│      │       └───┬───┘                              │
│      │           ↓                                  │
│      │       Retry (max 3x)                         │
│      ↓                                              │
│   Output Script                                     │
└─────────────────────────────────────────────────────┘

Default Output Format

/actionbook-scraper:generate <url>

DEFAULT = agent-browser script (bash commands)

agent-browser open "https://example.com"
agent-browser scroll down 2000
agent-browser get text ".selector"
agent-browser close

With --standalone Flag

/actionbook-scraper:generate <url> --standalone

Output = Playwright JavaScript code


Verification Requirements

Two-Part Verification

Every generated script must pass BOTH checks:

CheckWhat to VerifyFailure Action
1. Script RunsNo errors, no timeoutsFix syntax/selector errors
2. Data CorrectContent matches expected fieldsFix extraction logic

Part 1: Script Execution Check

  • No runtime errors
  • No timeout errors
  • Browser closes properly

Part 2: Data Content Check (CRITICAL)

Verify extracted data matches the expected structure:

Expected: Company name, description, website, year founded
Actual:   "Click to expand", "Loading...", empty strings

→ FAIL: Data content incorrect, need to fix extraction logic

Data validation rules:

RuleExample FailureFix
Fields not emptyname: ""Check selector targets correct element
No placeholder textname: "Loading..."Add wait for dynamic content
No UI textname: "Click to expand"Extract after expanding, not button text
Correct data typeyear: "View Details"Wrong selector, fix field mapping
Reasonable countExpected ~100, got 3Add scroll/pagination handling

For agent-browser Scripts

  1. Execute the generated commands
  2. Check script runs without errors
  3. Check data content is correct:

- Fields match expected structure - Values are actual data, not UI text - Count is reasonable

  1. If failed:

- Analyze what's wrong (script error vs data error) - Fix selector, wait logic, or extraction - Re-execute

  1. If success:

- Output the verified script - Show data preview with field validation

For Playwright Scripts (--standalone)

  1. Write script to temp file
  2. Run with node script.js
  3. Check script runs without errors
  4. Check output data is correct:

- JSON structure matches expected fields - Values contain actual data - Count matches expected range

  1. If failed:

- Analyze error type - Fix script - Re-run

  1. If success:

- Output the verified script

Architecture Overview

/generate <url>              → OUTPUT: agent-browser bash commands
/generate <url> --standalone → OUTPUT: Playwright .js file
┌─────────────────────────────────────────────────────────────┐
│                   /generate <url>                           │
│                                                             │
│   1. Search Actionbook → get selectors                      │
│   2. Generate OUTPUT:                                       │
│                                                             │
│      WITHOUT --standalone    │    WITH --standalone         │
│      ─────────────────────   │    ──────────────────        │
│      agent-browser commands  │    Playwright .js code       │
│                              │                              │
│      ```bash                 │    ```javascript             │
│      agent-browser open ...  │    const { chromium } = ...  │
│      agent-browser get ...   │    await page.goto(...)      │
│      agent-browser close     │    ```                       │
│      ```                     │                              │
└─────────────────────────────────────────────────────────────┘

Tool Priority

OperationPrimary ToolFallbackNotes
Find selectors for URLsearch_actionsNoneSearch by domain/keywords
Get full selector detailsget_action_by_idNoneUse action_id from search
List available sourceslist_sourcessearch_sourcesBrowse all indexed sites
Generate agent-browser scriptAgent (sonnet)-Default mode for /generate
Generate Playwright scriptAgent (sonnet)-Use --standalone flag
Structure analysisAgent (haiku)-Parse Actionbook response
Request new websiteagent-browserManualSubmit to actionbook.dev (ONLY command that executes agent-browser)

Workflow Rules

CRITICAL: Generate → Verify → Fix

Every generated script MUST be verified by executing it.

StepAction
1Generate script with Actionbook selectors
2Execute script to verify it works
3If failed: analyze error, fix script, go to step 2
4If success: output verified script + data preview

Verification Process

For agent-browser scripts:

# Execute each command
agent-browser open "https://example.com"
agent-browser wait --load networkidle
agent-browser get text ".selector"
# Check if data is returned
# If error → fix and retry
agent-browser close

For Playwright scripts (--standalone):

# Write to temp file and execute
node /tmp/scraper.js
# Check if output file has data
# If error → fix and retry

Critical Rules

  1. ALWAYS verify generated scripts - Execute and check BOTH parts
  2. Part 1: Script must run - No errors, no timeouts
  3. Part 2: Data must be correct - Not empty, not UI text, fields mapped correctly
  4. Fix errors automatically - Don't output broken scripts or wrong data
  5. Use Actionbook MCP tools first - Never guess selectors
  6. Include scroll handling for lazy-loaded pages
  7. Include expand/collapse logic for card-based layouts
  8. Always close browser - Include agent-browser close
  9. Retry up to 3 times - If still failing, report the specific issue

Common Data Errors to Catch

ErrorExampleFix
Extracted button textname: "Click to expand"Extract content after expanding
Extracted placeholderdesc: "Loading..."Add wait for dynamic content
Empty fieldsname: ""Fix selector
Wrong field mappingyear: "San Francisco"Fix selector for each field
Too few itemsExpected 100, got 3Add scroll/pagination

Record Actionbook Data Issues

If Actionbook selectors are wrong or outdated, record to local file:

.actionbook-issues.log

When to record:

  • Selector doesn't exist on page
  • Selector returns wrong element
  • Page structure has changed
  • Missing selectors for key elements

Log format:

[YYYY-MM-DD HH:MM] URL: {url}
Action ID: {action_id}
Issue Type: {selector_error | outdated | missing}
Details: {description}
Selector: {selector}
Expected: {what it should select}
Actual: {what it actually selects or error}
---

Selector Priority

When Actionbook provides multiple selectors, prefer in this order:

  1. data-testid - Most stable, designed for automation
  2. aria-label - Accessibility-based, semantic
  3. css - Class-based selectors
  4. xpath - Last resort, most fragile

Commands

CommandDescriptionAgent
/actionbook-scraper:analyze <url>Analyze page structure and show available selectorsstructure-analyzer
/actionbook-scraper:generate <url>Generate agent-browser scraper scriptcode-generator
/actionbook-scraper:generate <url> --standaloneGenerate Playwright/Puppeteer scriptcode-generator
/actionbook-scraper:list-sourcesList websites with Actionbook data-
/actionbook-scraper:request-website <url>Request new website to be indexed (uses agent-browser)website-requester

Data Flow

Analyze Command

1. User: /actionbook-scraper:analyze https://example.com/page
2. Extract domain from URL → "example.com"
3. search_actions("example page") → [action_ids]
4. For best match: get_action_by_id(action_id) → full selector data
5. Structure-analyzer agent formats and presents findings

Generate Command (Default: agent-browser script)

User: /actionbook-scraper:generate https://example.com/page

Step 1: Search Actionbook
  search_actions("example.com page") → action_ids

Step 2: Get selectors
  get_action_by_id(best_match) → selectors

Step 3: Generate agent-browser script

agent-browser open "https://example.com/page" agent-browser wait --load networkidle agent-browser scroll down 2000 agent-browser get text ".item-container" agent-browser close


Step 4: VERIFY script (REQUIRED) Execute the commands and check if data is extracted If failed → analyze error → fix script → retry (max 3x)

Step 5: Return verified script + data preview

Example Output:

## Verified Scraper (agent-browser)

**Status**: ✅ Verified (extracted 50 items)

Run these commands to scrape:

agent-browser open "https://example.com/page" agent-browser wait --load networkidle agent-browser scroll down 2000 agent-browser get text ".item-container" agent-browser close


### Data Preview

[ {"name": "Item 1", "description": "..."}, {"name": "Item 2", "description": "..."}, // ... showing first 3 items ]

Generate Command (--standalone: Playwright script)

User: /actionbook-scraper:generate https://example.com/page --standalone

Step 1: Search Actionbook for selectors
Step 2: Get full selector data
Step 3: Generate Playwright/Puppeteer script
Step 4: VERIFY script (REQUIRED)
  Write to temp file → node /tmp/scraper.js → check output
  If failed → analyze error → fix script → retry (max 3x)
Step 5: Return verified script + data preview

Example Output:

## Verified Scraper (Playwright)

**Status**: ✅ Verified (extracted 50 items)

const { chromium } = require('playwright'); // ... generated code with Actionbook selectors


Usage:

npm install playwright node scraper.js


### Data Preview

[ {"name": "Item 1", "description": "..."}, // ... first 3 items ]

Request Website Command

1. User: /actionbook-scraper:request-website https://newsite.com/page
2. Launch website-requester agent (uses agent-browser)
3. Agent workflow:
   a. agent-browser open "https://actionbook.dev/request-website"
   b. agent-browser snapshot -i (discover form selectors)
   c. agent-browser type <url-field> "https://newsite.com/page"
   d. agent-browser type <email-field> (optional)
   e. agent-browser type <usecase-field> (optional)
   f. agent-browser click <submit-button>
   g. agent-browser snapshot -i (verify submission)
   h. agent-browser close
4. Output: Confirmation of submission

Selector Data Structure

Actionbook returns selector data in this format:

{
  "url": "https://example.com/page",
  "title": "Page Title",
  "content": "## Selector Reference\n\n| Element | CSS | XPath | Type |\n..."
}

Common Selector Patterns

Card-based layouts:

Container: .card-list, .grid-container
Card item: .card, .list-item
Card name: .card__title, .card-name
Card description: .card__description
Expand button: .card__expand, button.expand

Detail extraction (dt/dd pattern):

// Common pattern for key-value pairs
const items = container.querySelectorAll('.info-item');
items.forEach(item => {
  const label = item.querySelector('dt').textContent;
  const value = item.querySelector('dd').textContent;
});

Table layouts:

Table: table, .data-table
Header: thead th, .table-header
Row: tbody tr, .table-row
Cell: td, .table-cell

Page Type Detection

IndicatorPage TypeTemplate
Scroll to load moreDynamic/Infiniteplaywright-js (with scroll)
Click to expandCard-basedplaywright-js (with click)
Pagination linksPaginatedplaywright-js (with pagination)
Static contentStaticpuppeteer or playwright
SPA framework detectedSPAplaywright-js (network idle)

Output Formats

Analysis Output

## Page Analysis: {url}

### Matched Action
- **Action ID**: {action_id}
- **Confidence**: HIGH | MEDIUM | LOW

### Available Selectors

| Element | Selector | Type | Methods |
|---------|----------|------|---------|
| {name} | {selector} | {type} | {methods} |

### Page Structure
- **Type**: {static|dynamic|spa}
- **Data Pattern**: {cards|table|list}
- **Lazy Loading**: {yes|no}
- **Expand/Collapse**: {yes|no}

### Recommendations
- Suggested template: {template}
- Special handling needed: {notes}

Generated Code Output

## Generated Scraper

**Target URL**: {url}
**Template**: {template}
**Expected Output**: {description}

### Dependencies

npm install playwright


### Code

{generated_code}


### Usage

node scraper.js


### Output

Results saved to `{output_file}`

Templates Reference

TemplateFlagOutputRun With
agent-browser(default)CLI commandsagent-browser CLI
playwright-js--standalone.js filenode scraper.js
playwright-python--standalone --template playwright-python.py filepython scraper.py
puppeteer--standalone --template puppeteer.js filenode scraper.js

Error Handling

ErrorCauseSolution
No actions foundURL not indexedUse /actionbook-scraper:request-website to request indexing
Selectors not workingPage updatedReport to Actionbook, try alternative selectors
TimeoutSlow page loadIncrease timeout, add retry logic
Empty dataDynamic contentAdd scroll/wait handling
Form submission failedNetwork/page issueRetry or submit manually at actionbook.dev

agent-browser Usage

For the request-website command, the plugin uses agent-browser CLI to automate form submission.

agent-browser Commands

# Open a URL
agent-browser open "https://actionbook.dev/request-website"

# Get page snapshot (discover selectors)
agent-browser snapshot -i

# Type into form field
agent-browser type "input[name='url']" "https://example.com"

# Click button
agent-browser click "button[type='submit']"

# Close browser (ALWAYS do this)
agent-browser close

Selector Discovery

If form selectors are unknown, use snapshot to discover them:

agent-browser open "https://actionbook.dev/request-website"
agent-browser snapshot -i  # Returns page structure with selectors

Always Close Browser

Critical: Always run agent-browser close at the end of any agent-browser session, even if errors occur.

Rate Limiting

  • Actionbook MCP: No rate limit for local usage
  • Target websites: Respect robots.txt and add delays between requests
  • Recommended: 1-2 second delay between page requests

Examples

Example 1: Generate agent-browser Script (Default)

/actionbook-scraper:generate https://firstround.com/companies

Output: agent-browser commands

agent-browser open "https://firstround.com/companies" agent-browser scroll down 2000 agent-browser get text ".company-list-card-small" agent-browser close


User runs these commands to scrape.

Example 2: Generate Playwright Script


/actionbook-scraper:generate [https://firstround.com/companies](https://firstround.com/companies) --standalone

Output: Playwright JavaScript code

const { chromium } = require('playwright'); // ... full script


User runs: `node scraper.js`

Example 3: Analyze Page Structure


/actionbook-scraper:analyze [https://example.com/products](https://example.com/products)

Output: Analysis showing:

- Available selectors
- Page structure
- Recommended approach

Example 4: Request New Website


/actionbook-scraper:request-website [https://newsite.com/data](https://newsite.com/data)

Action: Submits form to actionbook.dev (this command DOES execute agent-browser)

Best Practices

  1. Always analyze before generating - Understand the page structure first
  2. Check list-sources - Verify the site is indexed before attempting
  3. Review generated code - Verify selectors match expected elements
  4. Add appropriate delays - Be respectful to target servers
  5. Handle edge cases - Empty states, loading states, errors
  6. Test incrementally - Run on small subset before full scrape

平台分布

Codex

31.22%
按下载量换算338

Claude

31.13%
按下载量换算337

Cursor

18.91%
按下载量换算205

Gemini CLI

8.86%
按下载量换算96

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills