Skip to main content

scrape2md 🕷️ → 📝

PyPI version Python versions License: MIT Downloads GitHub stars

Scrape entire websites and convert to clean markdown — perfect for LLM training data, RAG systems, and AI applications. Handles iframes, JavaScript navigation, and complex site structures.

Why Markdown?

Markdown is the ideal format for working with LLMs:

  • ✅ Clean, structured text for training language models
  • ✅ Perfect for RAG (Retrieval-Augmented Generation) pipelines
  • ✅ Easy to process, chunk, and embed for vector databases
  • ✅ Human-readable and Git-friendly for documentation

Features

  • 🕷️ Full site crawling with automatic link discovery
  • 🖼️ Iframe support for embedded content
  • 🧹 Smart cleanup removes navigation, boilerplate, and duplicates
  • 📝 Clean markdown output with readable filenames
  • 🚀 Headless browser powered by Playwright (handles JavaScript)

Installation

pip install scrape2md
playwright install chromium  # One-time browser setup

Quick Start

CLI:

scrape2md https://example.com
scrape2md https://site.com -o docs -m 50 -d 2.0

Python:

from scrape2md import WebScraper

scraper = WebScraper("https://example.com", "output", max_pages=50)
scraper.scrape_site()

Options

scrape2md <url> [options]

  -o, --output DIR      Output directory (default: scraped_sites)
  -m, --max-pages N     Max pages to scrape (default: 100)
  -d, --delay SECONDS   Delay between requests (default: 1.0)
  --download-images     Download images (off by default)

How It Works

  1. Discovers site structure from navigation menus
  2. Crawls pages breadth-first with Playwright (handles JavaScript)
  3. Extracts content from iframes and dynamic elements
  4. Strips boilerplate (nav, footer, ads, login forms)
  5. Converts to clean markdown with smart filenames
  6. Detects and skips duplicate content

Output

scraped_sites/
└── example_com/
    ├── Home.md
    ├── About Us.md
    ├── Documentation.md
    └── ...

Limitations

  • Requires Chromium browser (installed via Playwright)
  • Doesn't handle login-protected content
  • Google Docs embeds are linked but not downloaded
  • Default limit: 100 pages per site (configurable)

Development

git clone https://github.com/taralika/scrape2md.git
cd scrape2md
pip install -e .[dev]  # Install with dev dependencies
playwright install chromium  # One-time browser setup
pytest  # Run tests
black .  # Format code
ruff check .  # Lint code
mypy src/  # Type checking

Contributing

Pull requests welcome! Please open an issue first to discuss major changes.

License

MIT License - see LICENSE file for details

Author

Anand Taralika - GitHub

Changelog

0.1.0 (2025-11-19) — Initial release

Release files for scrape2md 0.1.0

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

Source distribution (sdist)

Source distribution for scrape2md 0.1.0
File Size Uploaded
scrape2md-0.1.0.tar.gz 14.9 kB Details

Built distribution (wheel)

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

Total release size: 28.0 kB

Release files / scrape2md-0.1.0.tar.gz

Download URL scrape2md-0.1.0.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
984d960db31ec7dfcace3b238338be8b136f62d43d83bd2ccee6d3f1e1fdc9be
BLAKE2b-256 checksum
How to use checksums
e3c6865bb486c7273afee48d8b59da18a75f0776cce0f80bf2410771fb16546e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / scrape2md-0.1.0-py3-none-any.whl

Download URL scrape2md-0.1.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b4f82c81b76a76c522ed2d3f98667e37edca79b2a1886b3f627ee9ef1729fdab
BLAKE2b-256 checksum
How to use checksums
0c492cc9042f9bd63f710a9ce4b1d24764709aec3706239dde89d9aceca18c2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 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