https://github.com/LpCodes/LP-All-Images-Downloader
A simple package to download all Images from the url provided
https://github.com/LpCodes/LP-All-Images-Downloader
automation download downloader pypi-package python python3 showcase
Last synced: about 1 year ago
JSON representation
A simple package to download all Images from the url provided
- Host: GitHub
- URL: https://github.com/LpCodes/LP-All-Images-Downloader
- Owner: LpCodes
- Created: 2022-07-14T13:36:43.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-28T08:37:49.000Z (over 2 years ago)
- Last Synced: 2024-11-15T03:58:00.562Z (over 1 year ago)
- Topics: automation, download, downloader, pypi-package, python, python3, showcase
- Language: Python
- Homepage: https://pypi.org/project/LpImagesDownloader/
- Size: 75.2 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://pepy.tech/project/lpimagesdownloader)
[](https://github.com/LpCodes/LP-All-Images-Downloader/actions/workflows/python-publish.yml)
# LP Images Downloader
A powerful Python package to effortlessly download all images from any webpage. Built with Selenium and modern Python practices, this tool automates image scraping with robust error handling and detailed logging.
## ✨ Features
- **Dynamic Content Handling**: Automatically scrolls through pages to load dynamic images
- **Robust Error Handling**: Comprehensive error catching and logging
- **URL Validation**: Ensures all images are valid before downloading
- **Customizable Save Locations**: Organizes downloaded images into folders based on page titles
- **Detailed Logging**: Provides comprehensive logging of all operations
- **Type Safety**: Full type hints for better code reliability
- **Resource Management**: Proper cleanup of browser resources
- **Progress Tracking**: Returns list of successfully downloaded files
## 📦 Installation
Install the package from PyPI using pip:
```bash
pip install LpImagesDownloader
```
### Requirements
- Python 3.7+
- Chrome browser installed
- Internet connection
## 🚀 Usage/Examples
### Basic Usage
```python
from LpImagesDownloader import download_images
# Download images from a webpage, scrolling 3 times to load dynamic content
downloaded_files = download_images("https://en.wikipedia.org/wiki/India", 3)
print(f"Successfully downloaded {len(downloaded_files)} images")
```
### Advanced Usage with Error Handling
```python
from LpImagesDownloader import download_images
import logging
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
try:
# Download images with custom scroll count
downloaded_files = download_images("https://example.com", 5)
print(f"Successfully downloaded {len(downloaded_files)} images")
# Process downloaded files
for file_path in downloaded_files:
print(f"Downloaded: {file_path}")
except Exception as e:
logging.error(f"Failed to download images: {e}")
```
### Sample Output
```
2024-03-14 10:30:15 - INFO - Setting up environment...
2024-03-14 10:30:16 - INFO - Loading URL: https://example.com
2024-03-14 10:30:17 - INFO - Running operations in the background...
2024-03-14 10:30:18 - INFO - Scrolling page 1...
2024-03-14 10:30:20 - INFO - Scrolling page 2...
2024-03-14 10:30:22 - INFO - Scrolling page 3...
2024-03-14 10:30:23 - INFO - Total detected images on page: 25
2024-03-14 10:30:24 - INFO - Downloading 1.jpg...
2024-03-14 10:30:25 - INFO - Downloading 2.jpg...
...
2024-03-14 10:30:35 - INFO - Total images downloaded: 25
2024-03-14 10:30:35 - INFO - You can view the saved images at: /path/to/Saved Images/Example
```
## 🔧 Configuration
The package uses sensible defaults but can be customized:
- **Headless Mode**: Browser runs in headless mode by default
- **Timeout**: Default page load timeout is 30 seconds
- **Save Location**: Images are saved in a "Saved Images" directory with subdirectories based on page titles
## 🛠️ Development
### Setting up Development Environment
1. Clone the repository:
```bash
git clone https://github.com/LpCodes/LP-All-Images-Downloader.git
cd LP-All-Images-Downloader
```
2. Install development dependencies:
```bash
pip install -r requirements.txt
```
3. Run tests:
```bash
python -m pytest
```
## 🧑💻 Author
Created and maintained by [@LpCodes](https://github.com/LpCodes).
## 📜 License
This project is licensed under the [MIT License](https://choosealicense.com/licenses/mit/). Feel free to use and modify it as needed.
## 🤝 Contributing
Contributions are welcome! Here's how you can contribute:
1. Fork the repository
2. Create a new branch: `git checkout -b feature-name`
3. Make your changes and commit them: `git commit -m 'Add feature-name'`
4. Push to your branch: `git push origin feature-name`
5. Open a pull request and describe your changes
### Development Guidelines
- Follow PEP 8 style guide
- Add type hints to all functions
- Include docstrings for all functions
- Add tests for new features
- Update documentation as needed
## 🐛 Known Issues and Limitations
- Some websites may block automated browsers
- Very large pages may require more memory
- Some dynamic content may not load properly
## 🌟 Feedback & Suggestions
Have ideas to improve the package or documentation? Open an issue on the [GitHub repository](https://github.com/LpCodes/LP-All-Images-Downloader/issues).
## 📝 Additional Resources
- **Bug Tracker**: [Report Issues](https://github.com/LpCodes/LP-All-Images-Downloader/issues)
- **Source Code**: [GitHub Repository](https://github.com/LpCodes/LP-All-Images-Downloader)
- **Documentation**: [Read the Docs](https://lpimagesdownloader.readthedocs.io/)
---
Thank you for using LP Images Downloader! Your feedback helps make this project better. 😊