Skip to content
Back to skills

Octocode Scraping

ASecurity

Use when extracting or mapping public web content into a local cited corpus: scrape or crawl a URL/docs site, pull tables/pricing/product fields, diagnose blocked or thin pages, or answer from saved pages. Phrases like scrape this URL, crawl the docs, build a corpus, extract pricing. Prefer keyless fetch; ask before hosted spend. Live clicks/HAR/perf → octocode-chrome-devtools.

  • 921 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added August 31, 2026
ai-agentsgonodeapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add bgauryy/octocode --skill octocode-scraping --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Octocode Scraping?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Octocode Scraping
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bgauryy-octocode-scraping/badge)](https://www.skillsdirectory.com/skills/bgauryy-octocode-scraping)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: octocode-scraping
description: "Use when extracting or mapping public web content into a local cited corpus: scrape or crawl a URL/docs site, pull tables/pricing/product fields, diagnose blocked or thin pages, or answer from saved pages. Phrases like scrape this URL, crawl the docs, build a corpus, extract pricing. Prefer keyless fetch; ask before hosted spend. Live clicks/HAR/perf → octocode-chrome-devtools."
---

# Octocode Scraping

Flow: `FRAME → POLICY → ROUTE → FETCH → CORPUS → SEARCH → CITE → RECOVER`.

FRAME before the first fetch: fix target URL/domain, goal, depth, and output shape — vague ask → `references/user-inputs.md`.

Defaults: one public URL, `--mode html`, omit `--provider` (keyless `cdp`→`direct`), session `.octocode/tmp/scrape/{sessionId}`, compact stdout. Search corpus before refetch. Live interaction → chrome-devtools on one port, then `har-ingest` + `corpus-run` into the same session. Ask before auth, hosted spend, crawl widen, CAPTCHA/MFA, destructive actions. Cite paths + URL metadata — not raw dumps.

Stop when: two same-class failures (report evidence, route tried, sanitized status, next approval); hosted `403` (wrong key or credits gone — status only, no retry); CAPTCHA/MFA, auth wall, or cookie/profile transfer needed; still blocked after one `cdp` try (ask before `--provider scrapingant`); personal data, form submits, purchases, sends, deletes, or account changes in scope; the saved corpus already proves the claim (cite it, do not refetch); crawl widen before `reports/summary.md` is useful. Recovery table: `references/failure-recovery.md`.

## Route (pick one)
| Need | Do | Skip |
|---|---|---|
| Vague scrape | `--mode html`, omit `--provider` | markdown / auto hosted |
| See auto pick | `scripts/provider-check.mjs` | guessing |
| Fetch/crawl | `scripts/fetch.mjs` | deprecated `scrapingant-fetch` |
| Corpus on disk | `corpus-inspect` → find helpers → `corpus-run` | blind refetch |
| Live click/DOM/auth | chrome-devtools | `--provider cdp` alone for interaction |
| Page health | chrome measure + `measure-query` | hosted scrape for scores |
| CDP → corpus | `scripts/har-ingest.mjs --from-cdp-dir` | new sessionId |
| Prove field | `scripts/corpus-run.mjs --regex\|--script` | reopen browser |
| Still blocked | evidence + ask → `--provider scrapingant` | silent spend |

## Scripts (Node, no install; every one takes `--help`)
| When | Run |
|---|---|
| fetch / crawl / extract a URL — the owner of every network call | `scripts/fetch.mjs --url <u> [--mode html] [--crawl --same-domain --max-pages <n>] [--no-raw]` |
| want the fetch plus an immediate corpus brief in one shot | `scripts/fetch-and-brief.mjs --url <u>` (wraps `fetch.mjs` → `corpus-inspect.mjs`) |
| before routing or hosted spend: which provider auto-wins, credits left | `scripts/provider-check.mjs [--provider <p>]`, `scripts/provider-usage.mjs` — sanitized, never prints the key |
| read a saved session first, then search it | `scripts/corpus-inspect.mjs --session-dir <d> [--page <n>]`, then `scripts/corpus-find.mjs --session-dir <d> --query <t>` |
| pull static DOM, assets, or graph paths out of the corpus (live DOM → chrome-devtools) | `scripts/dom-find.mjs --kind form/button/table`, `scripts/resource-list.mjs --kind asset/external`, `scripts/graph-navigate.mjs --from <nodeId>` — each with `--session-dir <d>` |
| prove one field locally instead of reopening a browser | `scripts/corpus-run.mjs --session-dir <d> --roots cdp,extracts --regex <re>` (or `--script <file>`, `--concat-parts`) |
| bridge chrome-devtools artifacts into this session, or hand a packet back | `scripts/har-ingest.mjs --session-dir <d> --from-cdp-dir <run>`; reverse with `--export-packet` |
| need field names before an extraction | `scripts/schema-helper.mjs --intent "extract pricing and features"` |
| an old transcript uses the legacy names | deprecated shims `scripts/scrapingant-fetch.mjs`, `scripts/scrapingant-check.mjs`, `scripts/scrapingant-usage.mjs` forward to `fetch.mjs` / `provider-check.mjs` / `provider-usage.mjs` — call the new names |
| editing or extending a script | shared modules in `scripts/lib/` (`providers` registry, `client` fetch, `corpus`, `analyzers`, `extractors`, `text`, `args`, `bridge`); env/key resolution vendored in `scripts/octocode-config.mjs`; JSON contracts in `scripts/schemas/` |

Full flags, roles, and the library map: read `scripts/README.md` before adding a flag or a vendor.

## References
| When | Load |
|---|---|
| frame a vague scope | `references/user-inputs.md` |
| legal/safety/privacy policy | `references/scraping-policy.md` |
| cost / keyless vs hosted route | `references/route-selection.md` |
| provider registry / add a vendor | `references/providers.md` |
| hosted API, after approval | `references/scrapingant.md` |
| search a saved session corpus | `references/session-corpus.md` |
| site graph / navigation / workflows | `references/website-analysis.md` |
| stdout and corpus file shapes | `references/data-contract.md` |
| extract quality and citations | `references/extraction-quality.md` |
| live browser bridge playbook | `references/browser-scraping.md` |
| blocked, thin, or oversized results | `references/failure-recovery.md` |

Files in this skill

  • README.md965 B
  • SKILL.md5.2 KB
  • docs/ADDING_A_VENDOR.md4 KB
  • docs/PROVIDERS.md2.3 KB
  • references/browser-scraping.md1.9 KB
  • references/data-contract.md2.4 KB
  • references/extraction-quality.md1.1 KB
  • references/failure-recovery.md1.5 KB
  • references/providers.md1 KB
  • references/route-selection.md1 KB
  • references/scraping-policy.md1.3 KB
  • references/scrapingant.md1.7 KB
  • references/session-corpus.md1.4 KB
  • references/user-inputs.md1.1 KB
  • references/website-analysis.md2.9 KB
  • scripts/README.md1.2 KB
  • scripts/corpus-find.mjs4 KB
  • scripts/corpus-inspect.mjs2 KB
  • scripts/corpus-run.mjs8.8 KB
  • scripts/dom-find.mjs2.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.