Agent skill · Testing & QA

extract

Extract structured data from websites and produce an executable Playwright script plus extracted data. Use when the user wants to scrape, extract, pull, collect, or harvest data from any website — product listings, tables, search results, feeds, profiles, or any repeating content.

Actionbook1,582★ · +2/wk · 1 repos on radarProfile →
claude-codeApache-2.0
Install
npx skills add actionbook/actionbook --skill extract --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 13 KB
Bundled scripts: none
Path: skills/extract/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 1,584 · +2 this week
Language: Rust
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

## When to Use This Skill Activate when the user wants to **obtain data** from a website: - "Extract all product prices from this page" - "Scrape the table of results from ..." - "Pull the list of authors and titles from arXiv search results" - "Collect all job listings from this page" - "Get the data from this dashboard table" - "Harvest review scores from ..." - "Download all the links/images/cards from ..." The deliverable is always **two artifacts**: 1. **Executable Playwright script** — a standalone `.cjs` file that reproduces the extraction without Actionbook at runtime. 2. **Extracted data** — JSON (default), CSV, or user-specified format written to disk. ## Decision Strategy Use Actionbook as a **conditional accelerator**, not a mandatory step. The goal is reliable selectors in the shortest path. ``` User request │ ├─► actionbook search "<site> <intent>" │ ├─ Results with Health Score ≥ 70% ──► actionbook get "<ID>" ──► use selectors │ └─ No results / low score ──► Fallback │ └─► Fallback: actionbook browser open <url> ├─ actionbook browser snapshot (accessibility tree → find selectors) ├─ actionbook browser screenshot (visual confirmation) └─ manual selector discovery via

What's inside
Steps it walks through
  1. When to Use This Skill
  2. Decision Strategy
  3. Mechanism-Aware Script Strategy
  4. Streaming / SSR / RSC hydration
  5. Virtualized lists / virtual DOM
  6. Infinite scroll / lazy loading
  7. Pagination
  8. Execution Chain
  9. Step 1: Understand the target
  10. Step 2: Obtain selectors and choose execution path
  11. Step 3: Probe page mechanisms and fallback only when needed
  12. Step 4: Generate Playwright script
  13. Step 5: Execute and validate
  14. Step 6: Deliver
Commands it runs
Try Actionbook index first
actionbook search "<site> <data-description>" --domain <domain>
If good results (health ≥ 70%), get full selectors
actionbook get "<ID>"
actionbook browser open "<url>"     # if not already open
actionbook browser snapshot          # focus on failed field/container mapping
actionbook browser screenshot      # optional visual confirmation for failed area
actionbook browser open "<url>"
actionbook browser snapshot
actionbook browser screenshot
More from actionbook
All skills →
About this skill
What does the extract skill do?

Extract structured data from websites and produce an executable Playwright script plus extracted data. Use when the user wants to scrape, extract, pull, collect, or harvest data from any website — product listings, tables, search results, feeds, profiles, or any repeating content.

How do I install it?

Run `npx skills add actionbook/actionbook --skill extract --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From actionbook/actionbook, a repository with 1,584 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going