UPDATE: Eine wesentlich schnellere Möglichkeit stellt wkhtmltoimage aus dem wkhtmltopdf-Paket.
Kürzlich kam das Problem auf, von bestimmten Websites automatisiert auf einem Server Bildschirmfotos anzufertigen. Die Gründe dafür sind vielfältig:
- Effiziente Vorbereitung für Tests einer gesamten Website
- Vorschau-Bilder für hinterlegte Links erstellen (wie bei Facebook oder Google+ bekannt)
- Screenshots von Social-Plugins (Facebook etc), um datenschutzkonform zu werden. Der User bekommt nur ein Bild vom Social-Plugin angezeigt, es wird keine Anfrage zum Server ausgeführt, und damit ist man datenschutzrechtlich auf der sicheren Seite. Alle Hinweise im Disclaimer sind eigentlich zu spät (http://dejure.org/gesetze/TMG/13.html) Eine bekannte Methode wäre, Firefox und einen X-Server zu installieren, um dann einen Screenshot des Desktops zu machen. Allerdings empfand ich diese Methode als unkomfortabel und instabil, weshalb ich mich nach einer anderen umsah. Gefunden habe ich Webkit2png, ein in Python geschriebenes Skript zum automatisierten Aufruf des Webkit-Browsers, der bekanntermaßen der Unterbau des Google Chrome und Apple Safaris ist. Neben ein paar Installationsschwierigkeiten läuft das ganze nun aber ausgezeichnet, wenn auch etwas langsam.
Installation
Die Installation kurz beschrieben (für ein Debian-basiertes System)
1 2 3 | |
Das Tool kann nun von der Kommandozeile wie folgt gestartet werden:
1
| |
Die Parameter 1024 768 beziehen sich auf die Größe des simulierten Graphikservers. Die Zahlen "-g 0 0" beziffern die Höhe und Breite des Browser-Fensters. "0" bedeutet hier Auto.
Micro Webservice mit PHP
Nun will man das ganze vielleicht noch mit einem PHP-Skript einwickeln, um es einfach abzurufen zu machen.
- Man muss die Datei webkit2png.py in ein Verzeichnis mit dem zu schreibendem Skript legen
- Die Datei "webkit2png.log" muss für den Webserver schreibbar sein:
1 2 | |
- Nun kann das PHP Skript erstellt werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Voila, ein einfach anzusprechender Webservice, der uns Screenshots generiert und direkt anzeigt.
Reposted from www.pludoni.de