Web · sync
scrape-render
Scrape any URL — including SPAs and JS-rendered content.
Rendered HTML
About
scrape-render exists for the pages scrape-clean can't handle. If you `view-source` and see an empty `<div id="root"></div>`, the content is rendered by JavaScript after page load — you need a real browser to see it.
Returns: the post-render HTML, page title, HTTP status, meta description, canonical URL, OG / Twitter card metadata, favicon, and the first 500 outbound links.
Shortcuts to skip parsing the full DOM downstream: • `extractText: true` — returns the visible body text via `innerText()` (≤200k chars). • `selectorMap: { price: "#price", rating: ".stars" }` — runs `document.querySelector(...)` per key and returns each match's text. Up to 20 selectors per call.
Device emulation: `desktop` (1440×900) or `mobile` (390×844 + isMobile UA). 30-second nav timeout. SSRF-guarded URL fetch.
Competes with: ScrapingBee, ZenRows, Bright Data's Web Unlocker — but at marketplace pricing and without the proxy markup.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"waitUntil": {
"type": "string",
"enum": [
"load",
"domcontentloaded",
"networkidle"
],
"default": "networkidle"
},
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 5000,
"default": 0
},
"device": {
"type": "string",
"enum": [
"desktop",
"mobile"
],
"default": "desktop"
},
"extractText": {
"type": "boolean",
"default": false
},
"selectorMap": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Key → CSS selector. Returns each match's innerText."
}
}
}These are descriptive previews. Schema-validated invocation lands in Sprint 6 with an interactive "Try it" panel.
Reviews (0)
No reviews yet — be the first to share your experience.