A Python-based command-line tool for downloading complete websites — HTML, CSS, JS, and images — and packaging them into neatly organized ZIP files. Built for developers who need offline copies of sites or want to inspect structure and assets.
About The Project
website-downloader
fetches and organizes all core assets from a website URL — HTML, CSS, JS, and images — into a structured folder and ZIP archive. It includes a gamified interface and a CLI menu system, making it both practical and fun to use.
Core Features
- Full Site Downloader: Fetches web pages and their static assets.
- Organized Output: Resources saved in structured folders (
html/
,css/
,js/
,images/
) and compressed aswebsite_1.zip
,website_2.zip
, etc. - Gamified Experience: Tracks progress with levels and scores.
- Progress Feedback: Uses a terminal progress bar for download status.
- CLI Menu Interface: Options to download, list saved sites, view help, or exit.
- Resilient: Includes retry logic with exponential backoff on failed downloads.
Tech Stack
- Language: Python 3.x
- Libraries:
requests
– HTTP requestsbeautifulsoup4
– HTML parsingtqdm
– Progress barspyfiglet
– ASCII art headerscolorama
– Colorful terminal output
Getting Started
git clone https://github.com/SarangVehale/website-downloader.git
cd website-downloader/main6
pip install -r requirements.txt
python main6.py
Example File Structure
website_1.zip
├── html/
│ └── index.html
├── css/
│ └── style.css
├── js/
│ └── script.js
└── images/
└── logo.png
Roadmap
- Add multi-threaded downloads
- Support login-protected sites
- Optional image compression
- Interactive ZIP browser
MIT License © 2025
“Take the web offline — one ZIP at a time.”