Repository root has a convenience Makefile for running the examples.
Basic HTML scraper using ActoCrawlerHTML and SwiftSoup.
swift run ScraperExampleImage scraper that combines ActoCrawlerNetworking and ActoCrawlerHTML.
swift run ImageScraperExampleScraper with pagination support built on ActoCrawlerHTML.
swift run PagingScraperExampleHeadless browser crawler using playwright-python via PythonKit. This example launches a real browser (Chromium) to render pages, take screenshots, and extract links.
- uv (Python package manager)
- Install Python dependencies via
uv:
cd Examples/HeadlessBrowserExample
uv sync- Install Playwright browser binaries:
uv run playwright installswift run HeadlessBrowserExampleScreenshots will be saved to screenshots/ in the working directory.
Headless browser crawler using npm playwright via JavaScriptKit.
This example builds Swift to WebAssembly, injects Playwright from Node.js, visits real pages, and saves screenshots through the JavaScriptKit adapter.
- A SwiftWasm-compatible
swifttoolchain. Do not use the default Xcode toolchain for thejscommand. - A matching wasm SDK. The validated SDK ID for this repository is
DEVELOPMENT-SNAPSHOT-2025-09-14-a-wasm32-unknown-wasip1-threads. - Node.js and npm
- Install npm dependencies:
cd Examples/HeadlessBrowserJSExample
npm install- Install Playwright browser binaries:
npx playwright install chromiumswift package --disable-sandbox --swift-sdk DEVELOPMENT-SNAPSHOT-2025-09-14-a-wasm32-unknown-wasip1-threads js --product HeadlessBrowserJSExample
npm install --prefix .build/plugins/PackageToJS/outputs/Packagenode Examples/HeadlessBrowserJSExample/main.mjsScreenshots will be saved to Examples/HeadlessBrowserJSExample/output/.