__ __ _____ | \/ | | __ \ | \ / | | | | | | |\/| | | | | | | | | | | |__| | |_| |_| |_____/
A modern, high-volume structured product data collection system
Inspired by the Claude Code CLI experience
A production-ready CLI scraping system built with Python. It collects, cleans, and stores product data from multiple e-commerce platforms, providing analysis-ready datasets in multiple formats.
- Multi-Platform: Amazon, Noon, AliExpress, Jumia, and eBay.
- High Volume: Support for up to 1000 pages per site (~20,000 products).
- Modern UI: Minimalist "Claude Code" inspired CLI with a clean Peach-theme.
- Clean Data: Automatic validation, deduplication, and normalization.
| Platform | Currency | Mode | Status |
|---|---|---|---|
| Amazon | USD | Simulated | ✅ Ready |
| Noon | AED | Simulated | ✅ Ready |
| AliExpress | USD | Simulated | ✅ Ready |
| Jumia | EGP | Simulated | ✅ Ready |
| eBay | USD | Simulated | ✅ Ready |
| Books to Scrape | GBP | Live | ✅ Ready |
-
Install Dependencies:
pip install -r requirements.txt
-
Run Interactive Mode (Recommended):
python main.py
-
Or use direct commands:
# Scrape 10 pages from Amazon python main.py scrape amazon 10
python main.py scrape all 5 # Scrape all sites (5 pages each)
python main.py scrape noon 10 -q "phone" # Scrape specific site with keyword
python main.py scrape ebay 5 -f csv # Scrape and export to CSV directlypython main.py analyze # Show full analysis report
python main.py stats # Show quick database statistics
python main.py sites # List all available platformspython main.py export csv # Export all stored data to CSV
python main.py export excel # Export to Excel formatmd-scraper/
├── main.py # Entry point (CLI + Interactive)
├── config/ # Configuration & Settings
├── src/
│ ├── scrapers/ # Scraping logic for all sites
│ ├── models/ # Data structures (Product, Price)
│ ├── pipeline/ # Cleaning & Normalization
│ ├── storage/ # Database & Exporters
│ └── utils/ # Colors, HTTP Client, Logger
├── data/ # Database & Exported files
└── logs/ # Application logs
Control the scraper behavior using environment variables or settings.py:
| Variable | Default | Purpose |
|---|---|---|
SCRAPER_MAX_PAGES |
1000 |
Maximum pages per site |
SCRAPER_DELAY_MIN |
1.5 |
Minimum delay between requests |
SCRAPER_TIMEOUT |
30 |
Request timeout in seconds |
LOG_LEVEL |
INFO |
Verbosity (DEBUG/INFO/ERROR) |
- Database: All scraped data is stored in
data/scraper.db(SQLite). - Exports: Found in
data/processed/. - Custom Sites: Add your own sites via the interactive menu; they are saved in
data/custom_sites.json.
For more detailed information, check the module-specific documentation:
- Developer Guidelines
- Source Code Structure
- Scraper Development
- License: MIT - See LICENSE for details.
- Ethics: Please respect
robots.txtand use the built-in delays to avoid overwhelming servers.
M-D E-Commerce Scraper — Mohamed Darwish