scrapling
The scrapling worker puts Scrapling on
the iii bus. Three fetch tiers share one output shape: scrapling::fetch (fast
HTTP, curl_cffi TLS impersonation), scrapling::stealthy-fetch (Camoufox stealth
browser — solves Cloudflare/Turnstile, hardens WebRTC/canvas), and
scrapling::dynamic-fetch (Playwright/Chromium — JS rendering, waits, XHR
capture). Every fetch can extract in the same call by passing a selectors list,
and can fan out over a urls array. Parsing is also exposed standalone
(extract, css, xpath, regex, find-similar) for HTML you already have.
Fetches return {status, url, headers, cookies, encoding} plus extracted (when
selectors given) and html (when include_html: true). A bulk call returns
{results: [...]}.
When to Use
- Grab a page fast and pull fields in one shot:
scrapling::fetch with url
and selectors: [{name, css, all?}].
- Get past anti-bot / Cloudflare:
scrapling::stealthy-fetch with
solve_cloudflare: true.
- Render JS-heavy pages or wait on selectors:
scrapling::dynamic-fetch with
wait_selector, network_idle, or capture_xhr.
- Screenshot a page:
scrapling::screenshot (fetcher: dynamic|stealthy,
full_page?).
- Parse HTML you already fetched elsewhere:
scrapling::extract /
scrapling::css / scrapling::xpath / scrapling::regex.
- Scrape a repeating list from one example element:
scrapling::find-similar
with an anchor CSS selector.
- Fetch many URLs at once: pass
urls: [...] to any fetch function.
Boundaries
- The fetch functions make outbound requests to arbitrary URLs and are not
agent-callable without human approval (SSRF surface); the pure parsers are
(see iii-permissions.yaml).
- The stealthy/dynamic fetchers and screenshot need the bundled browsers
(Camoufox/Chromium) installed by
scrapling install in the image.
- Non-JSON Scrapling options (Python
page_action/page_setup callbacks,
proxy rotators, session objects, the Spider crawl layer) are intentionally not
exposed. Pass a single proxy string, not a rotator.
- Selector spec fields:
{name, css|xpath|regex, attr?, html?, all?} — attr
pulls an attribute, html pulls inner HTML, otherwise text; all returns a
list.
Functions
scrapling::fetch — HTTP get/post/put/delete; url|urls, method,
headers, impersonate, selectors, include_html.
scrapling::stealthy-fetch — Camoufox anti-bot fetch; solve_cloudflare,
block_webrtc, wait_selector, selectors, bulk.
scrapling::dynamic-fetch — Playwright fetch; network_idle, wait_selector,
real_chrome, cdp_url, capture_xhr, selectors, bulk.
scrapling::screenshot — page as image content blocks; fetcher, full_page, format.
scrapling::extract — parse html with a selectors list → named map.
scrapling::css — one CSS query over html; first?, attr?.
scrapling::xpath — one XPath query over html; first?, attr?.
scrapling::regex — regex over the visible text of html; first?.
scrapling::find-similar — anchor element + structurally similar elements.
1---2name: scrapling3description: Scrape the web over the iii bus with Scrapling — fast HTTP fetch with TLS impersonation, a Camoufox anti-bot browser (Cloudflare bypass), full Playwright rendering, screenshots, and CSS/XPath/regex/adaptive extraction.4---56# scrapling78The scrapling worker puts [Scrapling](https://github.com/D4Vinci/Scrapling) on9the iii bus. Three fetch tiers share one output shape: `scrapling::fetch` (fast10HTTP, curl_cffi TLS impersonation), `scrapling::stealthy-fetch` (Camoufox stealth11browser — solves Cloudflare/Turnstile, hardens WebRTC/canvas), and12`scrapling::dynamic-fetch` (Playwright/Chromium — JS rendering, waits, XHR13capture). Every fetch can extract in the same call by passing a `selectors` list,14and can fan out over a `urls` array. Parsing is also exposed standalone15(`extract`, `css`, `xpath`, `regex`, `find-similar`) for HTML you already have.1617Fetches return `{status, url, headers, cookies, encoding}` plus `extracted` (when18`selectors` given) and `html` (when `include_html: true`). A bulk call returns19`{results: [...]}`.2021## When to Use2223- Grab a page fast and pull fields in one shot: `scrapling::fetch` with `url`24 and `selectors: [{name, css, all?}]`.25- Get past anti-bot / Cloudflare: `scrapling::stealthy-fetch` with26 `solve_cloudflare: true`.27- Render JS-heavy pages or wait on selectors: `scrapling::dynamic-fetch` with28 `wait_selector`, `network_idle`, or `capture_xhr`.29- Screenshot a page: `scrapling::screenshot` (`fetcher: dynamic|stealthy`,30 `full_page?`).31- Parse HTML you already fetched elsewhere: `scrapling::extract` /32 `scrapling::css` / `scrapling::xpath` / `scrapling::regex`.33- Scrape a repeating list from one example element: `scrapling::find-similar`34 with an `anchor` CSS selector.35- Fetch many URLs at once: pass `urls: [...]` to any fetch function.3637## Boundaries3839- The fetch functions make outbound requests to arbitrary URLs and are not40 agent-callable without human approval (SSRF surface); the pure parsers are41 (see iii-permissions.yaml).42- The stealthy/dynamic fetchers and screenshot need the bundled browsers43 (Camoufox/Chromium) installed by `scrapling install` in the image.44- Non-JSON Scrapling options (Python `page_action`/`page_setup` callbacks,45 proxy rotators, session objects, the Spider crawl layer) are intentionally not46 exposed. Pass a single `proxy` string, not a rotator.47- Selector spec fields: `{name, css|xpath|regex, attr?, html?, all?}` — `attr`48 pulls an attribute, `html` pulls inner HTML, otherwise text; `all` returns a49 list.5051## Functions5253- `scrapling::fetch` — HTTP get/post/put/delete; `url`|`urls`, `method`,54 `headers`, `impersonate`, `selectors`, `include_html`.55- `scrapling::stealthy-fetch` — Camoufox anti-bot fetch; `solve_cloudflare`,56 `block_webrtc`, `wait_selector`, `selectors`, bulk.57- `scrapling::dynamic-fetch` — Playwright fetch; `network_idle`, `wait_selector`,58 `real_chrome`, `cdp_url`, `capture_xhr`, `selectors`, bulk.59- `scrapling::screenshot` — page as image content blocks; `fetcher`, `full_page`, `format`.60- `scrapling::extract` — parse `html` with a `selectors` list → named map.61- `scrapling::css` — one CSS query over `html`; `first?`, `attr?`.62- `scrapling::xpath` — one XPath query over `html`; `first?`, `attr?`.63- `scrapling::regex` — regex over the visible text of `html`; `first?`.64- `scrapling::find-similar` — anchor element + structurally similar elements.