webscreenshot/README.md

68 lines
2.4 KiB
Markdown

# Webscreenshot Docker
## Ziel des Projekts:
Automatisches Erstellen von Screenshots von ganzen Webseiten oder einzelnen Elementen (Auswahl via CSS-Selektor) und Speicherung in einem Apache-Webroot.
Die Screenshots werden in einem konfigurierbaren Intervall erstellt und nur gespeichert, wenn der aktuelle Screenshot von der vorheringen Version abweicht.
**Features:**
- Multi-URL-Support
- Flexible Dateinamen der Screenshots
- Skalierung der Screenshots in Relation zur Ursprungsgröße
- Anpassbare Größe bei Auswahl einzelner CSS-Elemente (Höhe und Breite)
- Individuelles Check-Intervall pro URL
- Speicherung nur bei Änderung
---
## Projektstruktur
webscreen/
|-- docker-compose.yml
|-- Dockerfile
|-- requirements.txt
|-- app/
|-- webscreenshot.py
|-- urls.csv
---
## Konfiguration
Die Hauptkonfiguration erfolgt über die Datei `urls.csv`:
| Spalte | Beschreibung |
|-----------------|-------------|
| `url` | URL der Webseite |
| `filename` | Name der Ausgabedatei (z.B. `example.png`) |
| `scale` | Skalierungsfaktor (z.B. 0.5 für 50%) |
| `selector` | CSS-Selector des Elements, das gescreenshotet werden soll; leer = ganze Seite |
| `element_width` | Breite des Elements vor Screenshot (px); leer = keine Änderung |
| `element_height` | Höhe des Elements vor Screenshot (px); leer = keine Änderung |
| `interval_minutes` | Intervall für wiederholten Screenshot in Minuten; leer = Docker-Variable |
Für den Fall dass bei der Skalierung oder beim Intervall keine Eintragung vorgenommen wird werden die "Standartwerte" aus den docker-compose environment-Variabeln
genommen. Diese können in der `docker-compose.yml` angepasst werden.
---
## Installation und Nutzung
1. Output-Verzeichnis erstellen:
mkdir output
2. `docker-compose.yml` ggf. anpassen
3. `urls.csv` anpassen
4. Stack starten
docker compose up -d --build
5. Screenshots sind abrufbar unter `http://localhost:8080/example.png`
---
## Hinweise
- Im Docker-Stack werden 2 Container erstellt: ein apache-Container um die Screenshots zugänglich zu machen und ein webscreenshot-Container, welcher das eigentliche python-Skript ausführt.
- Es wird empfohlen, den apache-Container hinter einem reverse proxy zu betreiben, so lassen sich die Screenshots per https abrufen.
- Der Port des apache-Servers kann regulär frei in der `docker-compose.yml` geändert werden