Skip to main content

Markdownee

Markdownee PyPI version PyPI downloads license

Also available as:

Online playground | Apify Actor | npm package CLI & lib | Source code on GitHub

Docs

Getting started | Python library help

Social

Star us on GitHub | Follow us on GitHub

Markdownee is a web scraper that crawls websites and saves their content as Markdown, HTML or plain text for LLMs, retrieval pipelines, and research datasets.

Choose which links to follow, set page and depth limits, and select how much page content to keep. Control tables, links, images, and user comments separately.

  • Boilerplate removal is powered by Trafilatura Core, our open-source fork of Trafilatura.

    The Core in its name means it is reduced to one task: extracting main content by removing boilerplate. Other packages handle output conversion, including Markdown.

    Trafilatura Core is ported from the original Python Trafilatura, with go-trafilatura as a DOM translation aid.

  • Crawlee handles crawling and uses Playwright for browser rendering.

  • Two language versions — TypeScript and Python: self-host with the npm CLI, npm library, or Python library, or use the hosted Apify Actor. Source code is on GitHub.

  • Save image files with the optional image downloading mode.

This package provides the native Python library, using Crawlee Python and Python Trafilatura Core. Python exposes library APIs only; see the language differences for its supported crawl controls.

Install

Use Python 3.12 or newer:

python -m pip install markdownee

Tested PyPI platforms are macOS and Linux on x64/ARM64, and Windows x64. Native Windows ARM64 support is planned but currently blocked by impit packaging; 32-bit Windows (x86) is unsupported.

HTTP crawling needs no browser download. For Chromium crawling, install the Playwright browser:

python -m playwright install chromium

Firefox has its own setup in Python Help. The package installs its dependencies, including pyvips[binary]; platforms without its binary support need a compatible libvips installation.

Extract a page

Save as extract.py, then run python extract.py:

from markdownee import fetch

contents = fetch(
    "https://docs.python.org/3/tutorial/introduction.html",
    crawler_type="http",
    formats=["markdown"],
)
print(contents["markdown"])

The program prints the extracted article. fetch() follows no links; unavailable formats are omitted and request failure raises MarkdowneeError. Format selectors are txt, markdown, html, minified-html, and original; compact HTML uses the result key minified_html. Original is captured input, not cleaned output.

Use afetch() in async applications. crawl() and acrawl() write a fresh run directory and return a CrawlSummary with output and manifest paths. Image saving belongs to these file-producing calls; fetch() rejects it.

See Python Help for complete examples, options, browser controls, limits, cancellation, and language differences.

Why Markdownee

Choose what to fetch, which content to retain, and where to save it. Page limits, link filters, and separate controls for images, tables, links, and user comments keep those choices explicit. Optional image downloading keeps local assets with extracted content.

Trafilatura Core ports original Python Trafilatura, with go-trafilatura as a DOM translation aid. Crawlee drives Playwright for browser rendering.

Use the npm CLI, npm library, native Python library, or hosted Apify Actor.

Support

Report problems through the issue tracker.

License

Licensed under Apache-2.0.

Metadata

Release files for markdownee 0.8.6

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

Built distribution (wheel)

Table of built distributions (wheels) for markdownee 0.8.6
File Interpreter ABI Platform
markdownee-0.8.6-py3-none-any.whl Python 3 none any Details

Release files / markdownee-0.8.6-py3-none-any.whl

Download URL markdownee-0.8.6-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de5b30e298ad0f627955f808d29a5f421451ca1fbbd040362bfd5a9510c18388
BLAKE2b-256 checksum
How to use checksums
04396a84b59e5eca3788ffd8ac4c6b24417c203d1be89a2f01e371062cad0aa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.11

1 release file

0.8.10

1 release file

0.8.9

1 release file

This release

0.8.6 This release

1 release file

0.8.5

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

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