scrape-web-page

Scrapes arbitrary web pages via localhost using raw, rendered, interactive, and network-capture modes.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/danielrosehill/Claude-Local-Web-Capture-Plugin --skill scrape-web-page-danielrosehill
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: scrape-web-page
Source: https://github.com/danielrosehill/Claude-Local-Web-Capture-Plugin/tree/main/skills/scrape-web-page
Command: npx skills add https://github.com/danielrosehill/Claude-Local-Web-Capture-Plugin --skill scrape-web-page-danielrosehill

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires scrapling, playwright.

What problem does it solve? Many websites hide their data behind JavaScript rendering, "load more" buttons, dropdowns, or search boxes, so a naive one-shot scrape returns empty or partial results. This Skill captures data from any non-article web page — SPAs, branch locators, catalogs, government portals — while routing all requests through the user's own machine to preserve their local IP for geo-restricted sites. ## Core Features & Use Cases - API-first discovery: Captures XHR/fetch traffic in network mode to find the backing JSON endpoint of an SPA, then calls it directly and caches it in sites.yaml for future runs. - Scripted interaction: Clicks "load more" buttons in a loop, enumerates dropdown options, types into autocomplete search boxes, and scrolls lazy-loaded pages until content stops growing. - Four output modes: raw HTML, rendered DOM, structured JSON/CSV extraction, and network-response capture, each saved with a sidecar .meta.json under pages/YYYY/MM/. - Use Case: Scrape the Israel Post branch locator by loading the page, clicking through city filters until all branches load, then extracting every branch id and Hebrew name into JSON. ## Quick Start Scrape this page, click the "load more" button until everything loads, then extract all branch names and ids into JSON: <URL>.

Frequently Asked Questions about scrape-web-page

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I scrape a page that requires clicking "load more" to show all data?▼

Use interactive mode with Playwright: load the page, then click the load-more button in a loop until it disappears, becomes disabled, or the row count stops growing. After the page settles, extract the requested data from the final DOM and save it as JSON.

How to find the hidden API behind an SPA or branch locator website?▼

Use network mode: attach a Playwright response listener, load the page, and record every JSON endpoint it requests. Then call the endpoint directly with curl or Fetcher.get and cache it in sites.yaml so future runs skip browser automation entirely.

What is the difference between raw, rendered, and interactive scraping modes?▼

Raw mode fetches the HTML as served, rendered mode executes JavaScript first, and interactive mode additionally scripts user actions like clicks, typing, and scrolling. Start with raw since rendered is the slowest, and escalate only when the goal requires it.

Does this scraper work with geo-restricted sites that block hosted scraping services?▼

Yes, all requests originate from the user's own machine, preserving their local IP address. The Skill explicitly forbids routing through hosted readers like Jina, Firecrawl, or ScrapingBee, which is the entire reason the plugin exists.

Why does my scrape return an empty or partial dataset?▼

The page likely hides data behind user interaction such as a city dropdown, search box, or show-all button that a one-shot fetch never triggers. Switch to interactive mode, or run network mode first to find the backing JSON API and call it directly.

When should I use scrape-article instead of a general page scraper?▼

Use scrape-article for clean, readability-friendly article pages where a main text body exists. Use this general scraper for everything else: SPAs, catalogs, search results, dashboards, and pages needing raw HTML, DOM, or network capture.