Skip to main content

turbo-surf (Python)

Browserless, native-speed web crawler + extractor with a real V8 JS-render tier — a PyO3 binding over the turbo-surf Rust engine. Fetch-free: you pass a page's HTML in, and get a view out (Markdown, visible text, links, a typed extraction, an accessibility tree). For JS-gated pages, the engine runs the page's own scripts in a true V8 isolate over a native DOM — no headless Chromium.

import turbo_surf as ts

html = open("page.html").read()

ts.markdown(html, base_url="https://example.com/")   # -> Markdown str
ts.text(html)                                        # -> visible text
ts.links(html, base_url="https://example.com/")      # -> list[str]

# Typed extraction: a JSON schema maps field names to selector specs.
schema = '{"title": {"selector": "h1"}, "prices": {"selector": ".price", "list": true}}'
ts.extract(html, schema, base_url="https://example.com/")   # -> JSON str

# JS-gated page: run its own scripts, read the hydrated DOM.
hydrated = ts.render(html, script, base_url="https://example.com/")

Fatal faults (malformed schema JSON, a render-tier failure) raise turbo_surf.TurboSurfError; the non-JS views never raise.

Install

pip install turbo-surf

Prebuilt abi3 wheels (CPython 3.8+) are published for Linux (x86_64/aarch64), macOS (arm64), and Windows (x64).

API

function returns notes
markdown(html, base_url="") str Markdown render
text(html) str visible text
title(html) str document <title>
html(html) str re-serialized HTML
links(html, base_url="") list[str] resolved hyperlink targets
interactive_elements(html, base_url="") JSON str links/buttons/inputs
accessibility_tree(html) JSON str a11y tree
hydration_state(html) JSON str hydration probe
detect(html) JSON str is the page JS-gated?
query(html, selector, kind=None) JSON str kind = "css"/"xpath"/auto
extract(html, schema_json, base_url="") JSON str typed extraction
evaluate(html, script) str run script over the DOM (sync)
render(html, script, base_url="") str hydrated HTML after page scripts run
transform(src, ts=False, jsx=False) str TS/JSX → classic JS (swc)

MIT licensed.

Metadata

Release files for turbo-surf 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for turbo-surf 0.3.5
File Size Uploaded
turbo_surf-0.3.5.tar.gz 554.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for turbo-surf 0.3.5
File
turbo_surf-0.3.5-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
turbo_surf-0.3.5-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details

Total release size: 122.0 MB

Release files / turbo_surf-0.3.5.tar.gz

Download URL turbo_surf-0.3.5.tar.gz
Size 554.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3410d6f3e4f3979cd1d2a0998bb53358ee1917b42a9896a2965aeefd4c94ce61
BLAKE2b-256 checksum
How to use checksums
d2b549f63e55299e4c28d5a1b777a3098c345e587df1bfa640ae01306098d8b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / turbo_surf-0.3.5-cp38-abi3-win_amd64.whl

Download URL turbo_surf-0.3.5-cp38-abi3-win_amd64.whl
Size 28.1 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
621f4c8a4fced90ef427e6292457a9bc42e73be6c7f340f6d5686245b91ae22b
BLAKE2b-256 checksum
How to use checksums
34f0b3880590955d689380eef5a288b1c9579739ef4bbc51b8265cd736525754
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 31.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
4dbfc99937088d50116781e16aa9e85c12f9e877400b58a1705bbcaf488a6e93
BLAKE2b-256 checksum
How to use checksums
9d5ecb2579686ba5c727e9bffc9a7c082a872e38d433e69ebdf1ee4f0ce1b48a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL turbo_surf-0.3.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 33.0 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
6e75e271af8640835d07cdb23586a932a261bebad81c078f9af701d2acb4d7b1
BLAKE2b-256 checksum
How to use checksums
8b3fbcfda2875d0221fbd4c090af493719100ddd1ddac121d91a6234ce0608ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / turbo_surf-0.3.5-cp38-abi3-macosx_11_0_arm64.whl

Download URL turbo_surf-0.3.5-cp38-abi3-macosx_11_0_arm64.whl
Size 28.9 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
519183856eeccdbf9105d64563d5566f0674687eddca26362d926d1a12d11d51
BLAKE2b-256 checksum
How to use checksums
028a3d839a6f8c5db340155454154658b2a56101e33799b0812f7802d076833d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release history Release notifications | RSS feed

0.5.3

5 release files

0.5.2

5 release files

0.5.1

5 release files

0.5.0

5 release files

0.4.4

5 release files

0.4.3

5 release files

0.4.2

5 release files

0.4.1

5 release files

0.4.0

5 release files

0.3.6

5 release files

This release

0.3.5 This release

5 release files

0.3.3

5 release files

0.3.1

5 release files

0.3.0

5 release files

0.2.7

5 release files

0.2.5

5 release files

0.2.4

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page