A modular Python application for downloading web pages and their assets (CSS, JavaScript, images) with concurrent downloads and progress tracking.
- Downloads complete web pages with all associated assets
- Concurrent asset downloading with progress bars
- Configurable asset types and download settings
- Automatic file organization by asset type
- ZIP file creation of downloaded content
- Robust error handling and retry mechanism
- Progress tracking with tqdm
- Asynchronous I/O operations
production/
├── src/
│ ├── config/ # Configuration classes
│ ├── utils/ # Utility functions and classes
│ ├── downloader/ # Core downloading functionality
│ └── cli/ # Command-line interface
└── tests/ # Unit tests (future addition)
- Clone the repository
- Install requirements:
pip install -r requirements.txt
Double-click run_webpage_grabber.bat to run the application.
Run from terminal/command prompt:
python start.pyThe application will:
- Prompt for a webpage URL
- Download the webpage and its assets
- Ask for a location to save the ZIP file
- Create a ZIP archive with all downloaded content
Modify DownloadConfig in src/config/download_config.py to customize:
- Maximum retries for failed downloads
- Timeout settings
- Concurrent download limit
- SSL verification
- User agent string
- Allowed asset types
- Maximum file size
- aiohttp: Asynchronous HTTP client/server
- tqdm: Progress bar
- urllib3: HTTP client
- pathlib: Object-oriented filesystem paths
Feel free to submit issues, fork the repository, and create pull requests for any improvements.