Skip to main content

Drive the Contextractor Node crawler/extractor from Python — clean main-content text in txt, markdown, json, or html.

Project description

contextractor

Contextractor

PyPI version PyPI downloads license

Crawl web pages and extract clean main-content text — txt, markdown, json, or html — from Python. Built on rs-trafilatura (extraction) and Crawlee + Playwright (crawling).

This package is a thin, typed wrapper that drives the bundled Node engine — a self-contained Node runtime ships with the wheel, so no Node.js install is required.

Homepage & docs: www.contextractor.com · Python guide

Install

pip install contextractor
python -m contextractor install   # one-time: download the Chromium browser

Platform wheels are published for macOS (arm64, x86_64), Linux (x86_64, aarch64; glibc ≥ 2.28), and Windows (x64). Requires Python 3.12+.

Quick start

Crawl one or more URLs and write extracted files plus a manifest.json index to output_dir:

import contextractor

summary = contextractor.extract(
    ["https://example.com"],
    save=["markdown-kvs"],
    output_dir="./out",
)
print(summary.succeeded, "of", summary.total)

An async variant, aextract(), takes the same arguments. Partial failures do not raise — they are reflected in summary.failed; validation and real crawl failures raise ContextractorError, and a missing browser raises MissingBrowserError pointing you at python -m contextractor install.

Single-page extraction

extract_one() crawls exactly one URL (no link-following) and returns the extracted content directly — nothing is written to disk:

import contextractor

markdown = contextractor.extract_one("https://example.com")          # -> str

contents = contextractor.extract_one(                                # -> dict[str, str]
    "https://example.com",
    formats=["markdown", "json", "original"],
)

With one requested format the return value is a str; with several it is a dict[str, str]. aextract_one() is the async variant.

Options

Every crawl option is a typed keyword argument, surfaced to editors and type checkers via the ExtractOptions / ExtractOneOptions TypedDicts (e.g. save, mode, proxy, cookies, headers, max_crawl_depth, globs). For the full, authoritative option reference see the Python documentation (and contextractor extract --help); the Python keywords map one-to-one onto the CLI flags.

Only http, https, socks4, and socks5 proxy URLs are accepted; credentials are never echoed in errors or logs. Set CONTEXTRACTOR_NODE_PATH to use a host Node binary instead of the bundled runtime.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contextractor-0.4.7.tar.gz (21.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

contextractor-0.4.7-py3-none-win_amd64.whl (29.2 MB view details)

Uploaded Python 3Windows x86-64

contextractor-0.4.7-py3-none-manylinux_2_28_x86_64.whl (29.3 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

contextractor-0.4.7-py3-none-manylinux_2_28_aarch64.whl (29.2 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

contextractor-0.4.7-py3-none-macosx_13_0_x86_64.whl (29.2 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

contextractor-0.4.7-py3-none-macosx_13_0_arm64.whl (29.1 MB view details)

Uploaded Python 3macOS 13.0+ ARM64

File details

Details for the file contextractor-0.4.7.tar.gz.

File metadata

  • Download URL: contextractor-0.4.7.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for contextractor-0.4.7.tar.gz
Algorithm Hash digest
SHA256 9f647880225c6ca47bfcd8b058975a0cf315c351b9e759fc8cfcb460b7009d80
MD5 12893bd3840f283f1c7d55118013d89f
BLAKE2b-256 cca27e70e0e665cc49ebdfa171b0731010e23e8ea4f234529947d2e1cf0907d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7.tar.gz:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file contextractor-0.4.7-py3-none-win_amd64.whl.

File metadata

  • Download URL: contextractor-0.4.7-py3-none-win_amd64.whl
  • Upload date:
  • Size: 29.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for contextractor-0.4.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 89b203142b3614b7b95c851a7a5743739078c767b33373a80114bd7e5b291efb
MD5 635fbbe147903b6a43ffc511243c76e1
BLAKE2b-256 2beaabc26609eb56a8597620a21295682e4f77b3a805aea9700a73385f4b323e

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7-py3-none-win_amd64.whl:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file contextractor-0.4.7-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for contextractor-0.4.7-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14b6eca3e79a7540aed65691d753b386731621f3f44fe114c17c0d3a4bf31428
MD5 9079f21469f6b52da1799adda39f3106
BLAKE2b-256 703999fa14173455882fd4bc5568595c0dca2003f35809db4390cdcdcc274d86

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7-py3-none-manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file contextractor-0.4.7-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for contextractor-0.4.7-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f64ff1c17afad773c4b8279f3e5c1c5f6d67ace720ce88be159ce21944fb9179
MD5 73ae72f19c19fde9369d7cd6e5b5e843
BLAKE2b-256 ee57dd99defee366d15794275605b99c5298874be89f5f00d05f0bb367cfc742

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7-py3-none-manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file contextractor-0.4.7-py3-none-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for contextractor-0.4.7-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 22dd615c493fd408503ffd539afa4d86a0ccce20e82d46e9061ee5cd11610f19
MD5 cce527cdfc426c6c6c0e591a2e008a99
BLAKE2b-256 66a4acb1676993b2aca7fba6cd0e5f53a334c8368be3be767456ff6d43a056db

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7-py3-none-macosx_13_0_x86_64.whl:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file contextractor-0.4.7-py3-none-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for contextractor-0.4.7-py3-none-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e41af9185f4d95abe8c617e9fa4748bd85af67fa3194236d46112c176c879453
MD5 5865eb4461f9c5028d80b0d17377f8e9
BLAKE2b-256 56f0aa15d1f23678966d0f4ca5361ecc0ce211e8bb67108945480ddba3fddeaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextractor-0.4.7-py3-none-macosx_13_0_arm64.whl:

Publisher: release-pypi.yml on contextractor/contextractor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page