Sven: Screenshots von Webseiten mit PHP/Perl/sonstwas erzeugen

Hello,

zum Generieren eines Screenshots braucht man definitiv einen Browser. Oder zumindest seine Engine. Zur Weiterverarbeitung des Screenshots reichen auch Dinge wie die GD-Library, die sich bequem per PHP oder Perl bedienen lassen.

Jetzt kommt die Frage: Wie bekomme ich diesen Screenshot hin?

Sagen wir folgendes: ich möchte, dass mein PHP oder Perl-Programm (ist mir ehrlich gesagt egal) zu irgendeiner Seite surft, davon einen Screenshot macht, diesen per GD-Lib verkleinert und dann an den Browser sendet.

Wie mache ich das?

Gruß,

Sven

--
!:        I'm back!
Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
Decode:   http://peter.in-berlin.de/projekte/selfcode/
E-Mail:   coming soon
me:       'd comed long ago
  1. Hallo Sven,
    diese Frage ist hier im Forum schon häufiger gestellt worden. Such doch mal im Archiv.
    Gruß Fritz

    1. Hallo Fritz,

      du bringst mich auf ganz neue Ideen!

      Gruß,

      Sven

      --
      !:        I'm back!
      Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
      Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
      Decode:   http://peter.in-berlin.de/projekte/selfcode/
      E-Mail:   coming soon
      me:       'd comed long ago
      1. Hallo Sven,

        du bringst mich auf ganz neue Ideen!

        tut mir aufrichtig leid, das wollt' ich nicht.

        Gruß Fritz

        1. Hallo Fritz,

          du bringst mich auf ganz neue Ideen!
          tut mir aufrichtig leid, das wollt' ich nicht.

          Ach, nicht so schlimm, ich schlage sie mir am Besten gleich aus dem Kopf ;)

          Gruß,

          Sven

          --
          !:        I'm back!
          Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
          Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
          Decode:   http://peter.in-berlin.de/projekte/selfcode/
          E-Mail:   coming soon
          me:       'd comed long ago
  2. Hallo,

    Sagen wir folgendes: ich möchte, dass mein PHP oder Perl-Programm (ist mir ehrlich gesagt egal) zu irgendeiner Seite surft, davon einen Screenshot macht, diesen per GD-Lib verkleinert und dann an den Browser sendet.

    Wie mache ich das?

    Unter Windows und mit Perl könntest Du zumindest auf die Schnelle eine halbautomatisierte Lösung mit Perl finden.

    Aus dem Script heraus startest Du den Browser Deiner Wahl mit dme URL als Übergabeparameter.
    Danach wartest Du im Script bis der Anwender ALT-PrntScr( ALT-Druck) benutzt, um den Fensterinhalt des Browsers (weil dann  ja aktives Fenster) in das Clipboard zu kopieren. Das kannst Du mit dem Modul Win32::Clipboard erledigen. Damit kannst Du dann auch den Inhalt des Clipboards auslesen und als Bitmap-Datei weiterbearbeiten.

    Grüße
      Klaus

    PS: Ich habe mir einmal ein kleines Script mit dem oben erwähnten Modul geschrieben, das laufend das Clipboard ausliest, wenn Bilder darin vorliegen. Die so ausgelesenen Bilder werden dann mit einer fortlaufenden Nummer versehen und in einem Verzeichnis abgelegt. Damit kann ich wunderbar die Screenshots für eine Programm-Dokumenentation erstellen, da ich mit dem Programm ganz normal arbeiten kann, und immer wenn ich meine, das ist jetzt ein wichtiger Bildschirminhalt, drücke ich einfach ALT-Druck und schon ist das bild abgespeichert.

    Grüße
      Klaus

    1. Huhu Klaus

      http://search.cpan.org/~gsar/libwin32-0.191/Clipboard/Clipboard.pm

      PS: Ich habe mir einmal ein kleines Script mit dem oben erwähnten Modul geschrieben, das laufend das Clipboard ausliest, wenn Bilder darin vorliegen. Die so ausgelesenen Bilder werden dann mit einer fortlaufenden Nummer versehen und in einem Verzeichnis abgelegt.

      Super Idee das werde ich gleich mal ausprobieren.

      Viele Grüße

      lulu

      --
      bythewaythewebsuxgoofflineandenjoytheday
    2. Hi Klaus,

      schön, Dich zu lesen!

      PS: Ich habe mir einmal ein kleines Script mit dem oben erwähnten Modul geschrieben, das laufend das Clipboard ausliest, wenn Bilder darin vorliegen. Die so ausgelesenen Bilder werden dann mit einer fortlaufenden Nummer versehen und in einem Verzeichnis abgelegt. Damit kann ich wunderbar die Screenshots für eine Programm-Dokumenentation erstellen, da ich mit dem Programm ganz normal arbeiten kann, und immer wenn ich meine, das ist jetzt ein wichtiger Bildschirminhalt, drücke ich einfach ALT-Druck und schon ist das bild abgespeichert.

      Könntest Du uns das nicht für die Tipps und Tricks spendieren?

      Viele Grüße
      Mathias Bigge

      1. Hallo Mathias,

        schön, Dich zu lesen!

        Tja, in letzter Zeit war ich doch etwas weiter weg, sowohl geografisch, als auch thematisch;-)

        Könntest Du uns das nicht für die Tipps und Tricks spendieren?

        Die nächste Woche habe ich sowieso "Urlaub"[1], also kann ich Du/Ihr auch in den nächsten Tagen damit rechnen[2].

        Grüße
          Klaus

        [1] Wenn man häusliche Aufräumarbeiten und Steuererklärung machen überhaupt als Urlaub bezeichnen kann.
        [2] Na, wnn das keine Drohung ist:-)

        1. Hi Klaus,

          Tja, in letzter Zeit war ich doch etwas weiter weg, sowohl geografisch, als auch thematisch;-)

          Deiner Erklärung zufolge waren wir zusammen auf der gleichen Reise. Nicht sehr erfreulich, der Tripp. Ich soll 200,- Euro vom Finanzamt zurückbekommen, die Restforderung des Steuerberaters 1200 Euro, das sind Hits....

          Könntest Du uns das nicht für die Tipps und Tricks spendieren?
          Die nächste Woche habe ich sowieso "Urlaub"[1], also kann ich Du/Ihr auch in den nächsten Tagen damit rechnen[2].

          Toll!

          Viele Grüße
          Mathias Bigge

    3. Hallo Klaus,

      soweit eine ganz nette Idee - das Perl-Programm müsste dann einfach die Tasteneingabe für
      den Browser "emulieren", die Zwischenablage auslesen, das Bild dann beschneiden (die ganzen Leisten wegmachen... ;), verkleinern (soll alles die GD-Library machen) und ausgeben.

      Das wäre dann der "alternative" Weg, den ich mir überlegt hätte, aber nicht gewusst hättte, wie er zu realisieren wäre.

      Tolle Idee, danke 8)

      Gruß,

      Sven

      --
      !:        I'm back!
      Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
      Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
      Decode:   http://peter.in-berlin.de/projekte/selfcode/
      E-Mail:   coming soon
      me:       'd comed long ago
      1. Hallo nochmal,

        gerade ist mir natürlich eingefallen, dass der verarbeitende Server ja gleichzeitig mein
        "Desktop-PC" hier ist. Somit ist es wohl mehr oder weniger extrem ärgerlich, wenn sich mtten beim Arbeiten ein Browser-Fenster öffnet, irgendeine Seite lädt, dann wieder schließt, und so "ganz nebenbei" die Zwischenablage, in der sich vielleicht gerade sehr wichtige Daten befunden haben, überschrieben wird 8|

        Naja, was solls ... ;)

        Gruß,

        Sven

        --
        !:        I'm back!
        Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
        Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
        Decode:   http://peter.in-berlin.de/projekte/selfcode/
        E-Mail:   coming soon
        me:       'd comed long ago
        1. Hallo Sven(i ?),

          gerade ist mir natürlich eingefallen, dass der verarbeitende Server ja gleichzeitig mein
          "Desktop-PC" hier ist. Somit ist es wohl mehr oder weniger extrem ärgerlich, wenn sich mtten beim Arbeiten ein Browser-Fenster öffnet, irgendeine Seite lädt, dann wieder schließt, und so "ganz nebenbei" die Zwischenablage, in der sich vielleicht gerade sehr wichtige Daten befunden haben, überschrieben wird 8|
          Naja, was solls ... ;)

          genau, dann muss ich mir eben irgendwann mal einen 2.PC mit Linux anschaffen 8)

          Obwohl ... gibt es hier eine Zwischenablage!?

          Warum kann man eigentlich nicht direkt eine Browserengine, z.B. Gecko, ansprechen?

          Gruß,

          Sven(ohne i)

          --
          !:        I'm back!
          Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
          Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
          Decode:   http://peter.in-berlin.de/projekte/selfcode/
          E-Mail:   coming soon
          me:       'd comed long ago
  3. Hi!
    Ich hab ein ähnliches Problem, ich möchte auch Screenshots von Homepages machen, allerdings vollständig automatisch durch einen Skript, der auf einem Webserver läuft. Also helfen da irgendwelche Lösungen mit Browser usw. nicht viel, sondern man müsste direkt auf ein Renderengine zurückgreifen und die Ausgabe statt an einen Monitor in eine Datei umleiten.
    Bloß wie?
    Vielleicht habt ihr ja eine Lösung oder zumindest Idee parat.
    Mfg
    Elessar

    --
    sh:( fo:) ch:{ br:> n4:° ie:% mo:} va:) de:] zu:) fl:( ss:) ls:[ js:|
    1. Hola,

      Ich hab ein ähnliches Problem, ich möchte auch Screenshots von Homepages machen, allerdings vollständig automatisch durch einen Skript, der auf einem Webserver läuft. Also helfen da irgendwelche Lösungen mit Browser usw. nicht viel, sondern man müsste direkt auf ein Renderengine zurückgreifen und die Ausgabe statt an einen Monitor in eine Datei umleiten.
      Bloß wie?
      Vielleicht habt ihr ja eine Lösung oder zumindest Idee parat.

      ehm - du willst genau das gleiche wie ich - obwohl ich es am besten direkt zum Browser weiterleite ;-)

      Gruß,

      sven

      --
      !:        I'm back!
      Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
      Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
      Decode:   http://peter.in-berlin.de/projekte/selfcode/
      E-Mail:   coming soon
      me:       'd comed long ago