Published Python package
pulldown
Turn a web page into Markdown your pipeline can use.
Fetch a public URL, preserve the content you need, and choose how much detail to pass downstream. Includes a CLI, Python API, MCP server, bounded crawling, and optional browser rendering.
What you can do with it
Who it's for: Developers building research, retrieval, and web ingestion workflows.
Readable Markdown from a URL, with control over how much page content you retain.
Your first useful result
Install in your development environment
python -m pip install "pulldown==0.4.2"- 01
Extract the example article
The source contains headings, a link, and a three-service table. Inspect the content and routing metadata, then compare it with the original page in the gallery.
pulldown get https://pulldown.making-minds.ai/examples/field-notes.html --detail structured --json-output --meta - 02
Compare the five modes
Change --detail to minimal, readable, full, or raw. Minimal returns plain text; readable chooses a strategy for the page; structured preserves hierarchy and summarizes tables; full includes page chrome; raw returns HTML.
- 03
Load content created by JavaScript
The HTTP result is a loading shell. After Chromium runs, expect RENDERED-BOARD-READY and the Documentation, Search, and Export cards. Rendering bypasses the HTTP cache.
python -m pip install "pulldown[render]==0.4.2" python -m playwright install chromium pulldown get https://pulldown.making-minds.ai/examples/live-board.html --detail readable pulldown get https://pulldown.making-minds.ai/examples/live-board.html --detail readable --render --wait 100
Know the limits
- Structured tables are summaries and can omit cells. Use full or raw when every row and cell matters, and check the result against its source.
- Browser rendering rejects redirects and blocks workers and WebSockets. Use a canonical URL; sites that depend on those transports may need another access path.
- Private addresses are blocked by default, but URL checks do not replace process and network isolation for untrusted sites. Login walls and anti-bot checks can still prevent extraction.