Convert web content to Markdown & JSON files to fuel your GPTs and agent AI!
Project description
Web Scraper to Markdown 🌐✍️
This Python-based web scraper fetches content from URLs and exports it into Markdown and JSON formats, specifically designed for simplicity, extensibility, and for uploading JSON files to GPT models. It is ideal for those looking to leverage web content for AI training or analysis. 🤖💡
🚀 Quick Start
(Or even better, use Docker! 🐳)
Recommended installation using pipx (isolated environment)
pipx install crawler-to-md
Alternatively, install with pip
pip install crawler-to-md
Then run the scraper:
crawler-to-md --url https://www.example.com
🌟 Features
- Scrapes web pages for content and metadata. 📄
- Filters links by base URL. 🔍
- Excludes URLs containing certain strings. ❌
- Automatically finds links or can use a file of URLs to scrape. 🔗
- Rate limiting and delay support. 🕘
- Exports data to Markdown and JSON, ready for GPT uploads. 📤
- Exports each page as an individual Markdown file if
--export-individualis used. 📝 - Uses SQLite for efficient data management. 📊
- Configurable via command-line arguments. ⚙️
- Docker support. 🐳
📋 Requirements
Python 3.10 or higher is required.
Project dependencies are managed with pyproject.toml. Install them with:
pip install .
🛠 Usage
Start scraping with the following command:
crawler-to-md --url <URL> [--output-folder ./output] [--cache-folder ./cache] [--base-url <BASE_URL>] [--exclude <KEYWORD_IN_URL>] [--title <TITLE>] [--urls-file <URLS_FILE>]
Options:
--url,-u: The starting URL. 🌍--urls-file: Path to a file containing URLs to scrape, one URL per line. If '-', read from stdin. 📁--output-folder,-o: Where to save Markdown files (default:./output). 📂--cache-folder,-c: Where to store the database (default:./cache). 💾--base-url,-b: Filter links by base URL (default: URL's base). 🔎--title,-t: Final title of the markdown file. Defaults to the URL. 🏷️--exclude,-e: Exclude URLs containing this string (repeatable). ❌--export-individual,-ei: Export each page as an individual Markdown file. 📝--rate-limit,-rl: Maximum number of requests per minute (default: 0, no rate limit). ⏱️--delay,-d: Delay between requests in seconds (default: 0, no delay). 🕒
One of the --url or --urls-file options is required.
📚 Log level
By default, the WARN level is used. You can change it with the LOG_LEVEL environment variable.
🐳 Docker Support
Run with Docker:
docker run --rm -v $(pwd)/output:/app/output -v cache:/app/cache ghcr.io/obeone/crawler-to-md --url <URL>
Build from source:
docker build -t crawler-to-md .
docker run --rm -v $(pwd)/output:/app/output crawler-to-md --url <URL>
🤝 Contributing
Contributions are welcome! Feel free to submit pull requests or open issues. 🌟
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crawler_to_md-0.2.4.tar.gz.
File metadata
- Download URL: crawler_to_md-0.2.4.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8588c5237064a754d896f5d1954e8956744eac0e8080ef2e578f854d471103f6
|
|
| MD5 |
e239fd07fb8038bda7e2a47d7017950e
|
|
| BLAKE2b-256 |
30f54337f6f4470b92d03ef36def194e93e6aee4bc179fb479896244ac7e4e3b
|
File details
Details for the file crawler_to_md-0.2.4-py3-none-any.whl.
File metadata
- Download URL: crawler_to_md-0.2.4-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a87440676c69250153ff822bd97c0bc1901165d55f0b5529a21d75801c99efe6
|
|
| MD5 |
f6f1ccc463ee4e39ea0db5a48c5edc5f
|
|
| BLAKE2b-256 |
2cda39b7cfbb7214d8c455347ea2d1dccce3f698871aa3138d8dbf0794c3d975
|