feat: Add installation scripts for Windows and Unix-based systems

- Created `install_and_run.bat` for Windows installation and setup.
- Created `install_and_run.sh` for Unix-based systems installation and setup.
- Removed `main.py` as it is no longer needed.
- Updated `requirements.txt` to specify package versions and added PyQt5.
- Deleted `start.bat` as it is redundant.
- Added unit tests for core functionality and scraping modes.
- Implemented input validation utilities in `utils/validators.py`.
- Added support for dual scraping modes in the scraper.
This commit is contained in:
Louis Mylle
2026-01-10 14:45:00 +01:00
parent 5f2fca226b
commit ea4cab15c3
19 changed files with 3731 additions and 335 deletions

148
README.md
View File

@@ -1,86 +1,90 @@
# EBoek.info Scraper
Een geautomatiseerde scraper voor het downloaden van stripverhalen van EBoek.info.
Een moderne PyQt5 GUI applicatie voor het scrapen van EBoek.info met dual scraping modes, real-time voortgangsmonitoring en veilige opslag van inloggegevens.
## Vereisten
## ✨ Functies
- Windows 10 of hoger
- Python 3.8 of hoger
- Google Chrome browser
- EBoek.info account
- **Twee scraping modi**: All Comics en Latest Comics
- **Gebruiksvriendelijke GUI** met real-time voortgang
- **Veilige credential opslag** in JSON config
- **Cross-platform** ondersteuning (Windows/macOS)
- **Background threading** - GUI blijft responsief
- **Graceful cancellation** tijdens operaties
## Installatie
## 📋 Vereisten
### Stap 1: Python installeren
- **Python 3.8+**
- **Google Chrome** browser
- **EBoek.info** account
1. Download Python van [python.org](https://www.python.org/downloads/)
2. Tijdens installatie: vink **"Add Python to PATH"** aan
3. Open Command Prompt en controleer de installatie:
```
python --version
```
## 🚀 Installatie
### Stap 2: Chrome WebDriver installeren
### Windows
Dubbelklik op `install_and_run.bat`
De ChromeDriver wordt automatisch geïnstalleerd bij het eerste gebruik. Zorg dat Google Chrome up-to-date is.
### Stap 3: Benodigde Python packages installeren
Open Command Prompt in de projectmap en voer uit:
```
python -m pip install selenium requests urllib3
### macOS / Linux
```bash
chmod +x install_and_run.sh
./install_and_run.sh
```
### Stap 4: Login gegevens instellen
Open `main.py` in een teksteditor (bijvoorbeeld Notepad) en pas regel 189 aan met je EBoek.info inloggegevens:
```python
scraper.login("jouw_gebruikersnaam", "jouw_wachtwoord")
```
Vervang `"jouw_gebruikersnaam"` en `"jouw_wachtwoord"` met je echte gegevens.
## Gebruik
### De scraper starten
1. Open Command Prompt
2. Navigeer naar de projectmap:
```
cd pad\naar\EBOEK.INFO SCRAPER
```
3. Start het script:
```
python main.py
```
### Stappen tijdens gebruik
1. **Inloggen**: Het script logt automatisch in met de opgegeven gebruikersnaam en wachtwoord
2. **Pagina selectie**:
- Voer het startpaginanummer in (1 voor de eerste pagina)
- Voer het eindpaginanummer in (zelfde als start voor één pagina)
3. **Downloaden**: Het script zal:
- Alle strips op de geselecteerde pagina's bezoeken
- De downloadlinks activeren
- Bestanden downloaden naar je Chrome Downloads map
4. **Afsluiten**: Druk op Enter om de browser te sluiten
### Voorbeelden
- **Één pagina downloaden**: Start=2, Eind=2 (download alleen pagina 2)
- **Meerdere pagina's**: Start=1, Eind=5 (download pagina 1 t/m 5)
- **Eerste pagina**: Start=1, Eind=1
## Downloads locatie
De bestanden worden gedownload naar je standaard Chrome downloadmap:
```
C:\Users\[gebruikersnaam]\Downloads
### Handmatig
```bash
pip install selenium urllib3 PyQt5
python3 gui_main.py
```
## Tips
## 🎯 Gebruik
- Het script simuleert menselijk gedrag met willekeurige pauzes
- Er zijn automatische pauzes tussen pagina's (15-45 seconden)
- Na elke 5 strips is er een korte pauze
- Laat het script ongestoord draaien voor beste resultaten
1. **Start de applicatie**: `python3 gui_main.py`
2. **Voer credentials in**: Klik "Change Credentials"
3. **Kies scraping mode**: All Comics of Latest Comics
4. **Stel pagina bereik in**: Start/eind pagina
5. **Start scraping**: Klik "Start Scraping"
## 📊 Scraping Modi
### Mode 0: All Comics
- **URL patroon**: `stripverhalen-alle/page/X/`
- **Structuur**: Traditionele blog layout
- **Selecteer**: `h2.post-title a`
### Mode 1: Latest Comics
- **URL patroon**: `laatste?_page=X&ref=dw`
- **Structuur**: Grid layout met containers
- **Selecteer**: `.pt-cv-wrapper .pt-cv-ifield h5.pt-cv-title a`
## 🗂️ Project Structuur
```
├── gui_main.py # GUI applicatie entry point
├── install_and_run.bat # Windows installer
├── install_and_run.sh # macOS/Linux installer
├── requirements.txt # Dependencies
├── core/ # Scraping logic
│ ├── scraper.py # Dual-mode scraper
│ ├── scraper_thread.py # Threading wrapper
│ └── credentials.py # Config management
├── gui/ # GUI components
│ ├── main_window.py # Main interface
│ ├── login_dialog.py # Credential input
│ └── progress_dialog.py # Progress monitoring
├── tests/ # Test scripts
└── utils/ # Helper functions
```
## 🔧 Troubleshooting
**GUI start niet**: Controleer PyQt5 installatie
**Login problemen**: Test credentials via GUI
**Download issues**: Controleer `~/Downloads` folder
## 💡 Tips
- Begin met 1-2 pagina's om de functionaliteit te testen
- Gebruik headless mode voor optimale snelheid
- Monitor de voortgang in de progress dialog
---
**Veel succes met scrapen! 🚀**