| app | ||
| output | ||
| .project | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
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
-
Output-Verzeichnis erstellen: mkdir output
-
docker-compose.ymlggf. anpassen -
urls.csvanpassen -
Stack starten docker compose up -d --build
-
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.ymlgeändert werden