68 lines
2.4 KiB
Markdown
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
|