Web scraper orchestration platform with a visual flow builder
Project description
🚀 ScrapeTL
The Open-Source Scraper Management & Orchestration Platform
ScrapeTL is a lightweight, robust orchestration engine designed to manage, schedule, and execute custom web scrapers. It provides a beautiful web-based interface for overseeing your data extraction pipeline, featuring native timezone support, custom webhook integrations, and a secure no-code deployment workflow.
✨ Core Pillars
- 🏗️ Visual Scraper Builder: Move beyond code with the integrated node-based flow editor. Connect Fetchers, Selectors, and Transformers on a zoomable 2D canvas to build enterprise-grade scrapers visually.
- 🧩 Functional Expression Engine: Inject dynamic logic into your flows using
{{ ... }}syntax. Call built-in functions likenow(),uuid(), andrandom()or define custom Python UDFs for complex data cleaning. - 🔬 Granular Debug Inspector: Troubleshoot failing scrapers with ease. Use the Debug Sink node to "tap" into any part of your flow and view raw data, HTML previews, and JSON structures in a dedicated, sandboxed inspector.
- 🕒 Precision Scheduling: Powered by
APScheduler, manage complex execution cycles via standard Cron expressions. Includes native IANA timezone resolution (e.g.,Asia/Baku,UTC) to ensure global accuracy. - 🔄 Fault-Tolerant Queue: Automatically tracks and recovers missed tasks. If the server restarts, ScrapeTL identifies overdue jobs and processes them immediately via a persistent catch-up queue.
- 🔌 Flexible Integrations: Distribute data effortlessly. Configure Discord webhooks, JSON payloads, and custom notification templates directly through the UI.
- 📦 Semantic Versioning: Built-in system snapshots allow you to edit scraper logic and perform on-the-fly version bumps (e.g.,
v2.0.0) with clear audit trails. - 💎 Premium Dashboard: A high-performance, glassmorphic dark-mode SPA providing real-time log monitoring, queue management, and interactive health diagnostics.
🛠️ Technology Stack
- Core: Python 3.10+, FastAPI, SQLAlchemy, APScheduler
- UI: HTML5, CSS3 (Vanilla), Vanilla ES6+ JavaScript (Zero build dependencies)
- Database: SQLite (Production-ready out of the box)
🚀 Deployment
-
Clone the repository:
git clone https://github.com/sadigaxund/ScrapeTL.git cd ScrapeTL
-
Environment Setup:
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows pip install -r requirements.txt
-
Launch:
python run.pyAccess the dashboard at
http://localhost:8000.
🧩 Building Your First Scraper
ScrapeTL offers a hybrid approach to development, supporting both visual flows and traditional Python scripts.
Option A: The Scraper Builder (Visual)
Navigate to Builder in the dashboard to create a scraper using the node-based flow editor. This is the fastest way to get started and requires zero code for most common scraping tasks (HTML extraction, Regex, JSON parsing).
Option B: Python-Based (Code)
For complex scraping scenarios requiring custom libraries or intricate logic, inherit from BaseScraper and define your rules in a .py file.
from app.scrapers.base import BaseScraper
class WebMonitor(BaseScraper):
def scrape(self):
# Your extraction logic (BeautifulSoup, requests, etc.)
return [{"title": "Data Point A", "value": "123.45"}]
Once written, upload this file through the Setup Wizard on the dashboard. ScrapeTL will securely import, version, and orchestrate the tasks according to your schedule.
📜 License
This project is open-source software licensed under the MIT License.
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 scrapetl-3.0.0a1.tar.gz.
File metadata
- Download URL: scrapetl-3.0.0a1.tar.gz
- Upload date:
- Size: 202.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02857ae097a25663af3122a5bf21ebda555d2acb3119aa1daffc7c73a887be00
|
|
| MD5 |
209055c923c61b17133a8f766cbb9ad0
|
|
| BLAKE2b-256 |
acb60495114cc40f890aba3863a7254e2d7b092c6dbca9b8185d1e9ffcf83578
|
File details
Details for the file scrapetl-3.0.0a1-py3-none-any.whl.
File metadata
- Download URL: scrapetl-3.0.0a1-py3-none-any.whl
- Upload date:
- Size: 190.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6e8a337e095f42c8a4e0959ae4083c803cc3ac61a5d0cd7ecc6f0145b48ea81
|
|
| MD5 |
9fa958bdb022861e22aa4cc328e98727
|
|
| BLAKE2b-256 |
66477664b7a609e679101f8a8b7aaeafb2db9aff65df028f22fb63113a3864c2
|