Google ist gegenwärtig einer der größten, wenn nicht der größte Player in der Informatik. Besonders hervorzuheben ist Google Engagement in der Linux-Welt bzw. im OpenSource Bereich. Um eine Vorstellung von allen Leistungen die Google anbietet zu bekommen, sollten wir uns fragen, was Google nicht anbietet. Das würde einfacher zu beantworten sein!
Ich möchte hier die PageSpeedOnline API von googleapis.com vorstellen. Sie liefert von einer URL ein umfangreiches JSON mit zahlreichen Informationen der Webseite die angefordert wird. Das JSON beinhaltet auch Screenshots, die als String (Data-URI-Grafik) wunderbar mit PHP ausgelesen werden können um sie dann in einem img Element darzustellen. Bei meinem Erkunden des JSON bin ich auf Screenshots als Thumbsnails, vollständige Darstellung der Webseite und einem Screenshot, wie er auf Bildschirmen dargestellt wird (final-screenshot).
Um das JSON anzufordern, muss man die URL
https://www.googleapis.com/pagespeedonline/v5/runPagespeed plus ?url=http://www.css4.at
aufrufen. Die Screenshots sind dann im lighthoseResult zu finden.
Probieren Sie hier das API aus, um herauszufinden ob Google es noch anbietet. Geben Sie einfach die URL zu einer Webseite ein (mit HTTP) und klicken Sie dann auf "Try it now".
Die Verarbeitung dauert erfahrungsgemäß ein paar Sekunden. Haben Sie also bitte etwas geduld - der Screenshot wird auf dieser Seite angezeigt!
Kommen wir zum PHP Code, um das Google PageSpeedOnline API zu nutzen!
In der Variable $resultat befindet sich der Screenshot als Data-URI-Graphik. Stark verkürzt (durch drei Punkte) sieht der String so aus:
Die Data-URI-Graphik besteht aus ca. 30.000 Zeichen, also ca. 30 KiB. Das ist durchaus verkraftbar für ein Bild mit der Größe von 500 x 348 Pixel.
Die Graphik, die noch in der Variable $resultat gespeichert ist, kann in einem <img src="" alt=""> Element angezeigt werden.
Natürlich kann der Data-URI-String auch anders verwendet werden. Z. B. in eine Datei speichern, oder in einer SQL Datenbank ablegen.
Wer einen vollen Screenshot der Webseite benötigt, verwendet folgende Befehlzeile:
Und Thumbnails gibt es mit:
Man sieht, mit dem PageSpeedOnline API ist ein Screenshot mit PHP keine Hexerei. Man erspart sich auf einem Apache-Server die Installation von pdf2html Tools udgl. mit umständlichen Konvertierungen usw. Zugegeben, die Performance könnte mit einem exec() oder shell_exec() und den passenden Tools definitiv höher sein. Aber für kleinere Webseiten ist m. E. Googles Lösung absolut ausreichend. Es lohnt sich auch einen tieferen Blick in das runPagespeed.json (ca. 334 KiB) zu werfen. Dort findet man auch zahlreiche Bewertungen der angefragten Webseite.
Eines muss ich noch sagen: Danke Google!