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.4.3

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.4.3
File Size Uploaded
turbo_surf-0.4.3.tar.gz 573.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for turbo-surf 0.4.3
File
turbo_surf-0.4.3-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
turbo_surf-0.4.3-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.4.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
turbo_surf-0.4.3-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details

Total release size: 122.1 MB

Release files / turbo_surf-0.4.3.tar.gz

Download URL turbo_surf-0.4.3.tar.gz
Size 573.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b175435a1499f2d3715b93adddc81f1b33a774e8e9ec9689beba632b0cab3870
BLAKE2b-256 checksum
How to use checksums
c3ff574fe1461c64dd3544dd6742120d8fe1f2cdffd7343c3b67014e5a241ea4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL turbo_surf-0.4.3-cp38-abi3-win_amd64.whl
Size 28.2 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
90eb4899ed119ab6a43971203c73d5c719a0a3bc79cecd70f02267dd228e9c95
BLAKE2b-256 checksum
How to use checksums
74170eb79b7e359e119097dbea68313e9f7319c2b50067ff365653e93ba8b771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL turbo_surf-0.4.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 31.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
02a0fbcb662d5a60238371613c998d9eb2269aa1ba6f5289fe69a289f47bde77
BLAKE2b-256 checksum
How to use checksums
d6d5b744b500aefcb208638161845975645a786d5678d2b17dcab2b56bfd13f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL turbo_surf-0.4.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 33.1 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
924f02241c990e9fc00da83463363bf507c8be19fa275c3602029668e4f7a2ec
BLAKE2b-256 checksum
How to use checksums
ccb792448fecf113e6b0a0166cd78a6cae9d2af7c5ad807ad9b48a99b287983d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL turbo_surf-0.4.3-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
169021f8be352bab115ff85a2a34541c2051a399eef8ffcbf19eaf7ef574a8fe
BLAKE2b-256 checksum
How to use checksums
565618ddfa055df73fe4bdc3b40dbbb539bf709e9e7042b7688362f4ed00ff2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

This release

0.4.3 This release

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

0.3.5

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