Website-Screenshots

407

Gibt es eine Möglichkeit, einen Screenshot einer Website in PHP zu erstellen und ihn dann in einer Datei zu speichern?

Paolo Forgia
quelle
2
Wenn Sie eine Drop-In-Lösung mögen, schauen Sie sich Usersnap an - es ist ein netter Service, der genaue Website-Screenshots bietet. Sie müssen Ihrer Seite nur ein kleines Javascript-Snippet hinzufügen, damit es funktioniert.
Gregor
1
Usersnap kann nicht mit Webseiten umgehen, die Ajax verwenden, um den Inhalt wie auf dieser Seite zu generieren . Wie könnte ich das erreichen? Nehmen wir an: Machen Sie den Screenshot 10 Sekunden nach dem ersten Laden der Seite fertig
rubo77
1
@ rubo77: Usersnap unterstützt solche dynamischen DOMs, ich habe es mit Ihrer Seite versucht - der Screenshot gibt die genaue Situation einschließlich aller Positionen wieder.
Gregor

Antworten:

280

LETZTE BEARBEITUNG : Nach 7 Jahren bekomme ich immer noch positive Stimmen für diese Antwort, aber ich denke, diese ist jetzt viel genauer.


Sicher können Sie, aber Sie müssen die Seite mit etwas rendern. Wenn Sie wirklich nur PHP verwenden möchten , empfehle ich Ihnen HTMLTOPS , das die Seite rendert und in einer PS-Datei (Ghostscript) ausgibt. Dann kann die Konvertierung in eine JPG- , PNG- , PDF- Datei etwas langsamer sein komplexe Seiten (und unterstützen nicht alle CSS).

Andernfalls können Sie wkhtmltopdf verwenden, um eine HTML-Seite in pdf, jpg usw. auszugeben. Akzeptieren Sie CSS2.0, verwenden Sie das Webkit (Safari-Wrapper), um die Seite zu rendern. Sollte also in Ordnung sein. Sie müssen es auch auf Ihrem Server installieren.

UPDATE Mit der neuen HTML5- und JS-Funktion ist es jetzt auch möglich, die Seite mit JavaScript in ein Canvas-Objekt zu rendern. Hier eine nette Bibliothek, um das zu tun: Html2Canvas und hier ist eine Implementierung des gleichen Autors, um ein Feedback wie G + zu erhalten. Sobald Sie den Dom in den Canvas gerendert haben, können Sie ihn über Ajax an den Server senden und als JPG speichern.

BEARBEITEN : Sie können das Imagemagick-Tool verwenden, um PDF in PNG umzuwandeln. Meine Version von wkhtmltopdf unterstützt keine Bilder. ZB convert html.pdf -append html.png.

BEARBEITEN : Dieses kleine Shell-Skript bietet ein einfaches / aber funktionierendes Anwendungsbeispiel unter Linux mit php5-cli und den oben genannten Tools.

EDIT : Ich habe jetzt bemerkt, dass das wkhtmltopdf-Team an einem anderen Projekt arbeitet: wkhtmltoimage, das Ihnen das JPG direkt gibt

Strae
quelle
11
+1 für wkhtmltopdf. Ich habe mit einigen anderen Bibliotheken gespielt, aber keine von ihnen hat annähernd mehr als nur sehr einfaches HTML und CSS unterstützt. wkhtmltopdf kann alles, was Safari tut, also sind Sie dort ziemlich sicher.
Wim
7
wkhtmltoimage funktioniert super! Danke für den Tipp. Gibt auch PNG aus.
Yuttadhammo
2
Jetzt erwähnen Sie wkhtmltopdf KnpLabs hat einen Wrapper dafür github.com/KnpLabs/snappy
rmontagud
1
@rmontagud die Verwendung von wkhtmltopdf ist ziemlich einfach, übrigens ist ein OOP-Wrapper immer gut!
Strae
1
Dies waren alles großartige Lösungen vor ein paar Jahren, aber die Browsertechnologie, auf der sie alle basieren, ist nicht auf dem neuesten Stand der HTML5 / CSS-Spezifikation. Wenn Sie eine Site rendern, die Webfonts, SVG, Canvas, Flexbox usw. verwendet, dann viel Glück beim Erhalten eines genauen Screenshots. Wenn Sie genaue Screenshots wünschen, überprüfen Sie meine Antwort, die urlbox verwendet
cjroebuck
87

Seit PHP 5.2.2 ist es möglich, eine Website ausschließlich mit PHP zu erfassen !

imagegrabscreen - Erfasst den gesamten Bildschirm

<?php
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>

imagegrabwindow - Erfasst ein Fenster oder seinen Clientbereich mithilfe eines Windows-Handles (HWND-Eigenschaft in der COM-Instanz).

<?php
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$Browser->Fullscreen = true;
$Browser->Navigate('http://www.stackoverflow.com');

while($Browser->Busy){
  com_message_pump(4000);
}

$img = imagegrabwindow($Browserhandle, 0);
$Browser->Quit();
imagepng($img, 'screenshot.png');
?>

Bearbeiten: Beachten Sie, dass diese Funktionen NUR auf Windows-Systemen verfügbar sind!

stephan
quelle
26
Nicht wirklich nur PHP, oder?
Toby Allen
Hierbei wird der Internet Explorer-Browser zum Rendern verwendet.
keanu_reeves
55

Wenn Sie keine Tools von Drittanbietern verwenden möchten, bin ich auf eine einfache Lösung gestoßen , die die Google Page Insight- API verwendet.

Ich muss es nur API mit Params nennen screenshot=true.

https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=https://stackoverflow.com/&key={your_api_key}&screenshot=true

Für die mobile Site-Ansicht übergeben Sie &strategy=mobileparams,

https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=http://stackoverflow.com/&key={your_api_key}&screenshot=true&strategy=mobile

DEMO .

Rikesh
quelle
3
Dies ist ziemlich cool und scheint auch ohne Angabe eines API-Schlüssels zu funktionieren. Das zurückgegebene Bild ist jedoch fehlerhaft. Sie müssen alle '_' durch '/' und alle '-' durch '+' ersetzen und können es dann einfach als Daten-Uri hinzufügen
Robert Went
9
Das ist fantastisch. Ich habe dies unter gist.github.com/jaseclamp/d4ac6205db352e822ff6
JaseC
21
Als Referenz ist die Page Insight-API von Google ein Tool von Drittanbietern.
Jimbo
1
Screenshot haben eine begrenzte Auflösung auf 320x240, ist wie ein Daumen
Gabriele F.
1
Wirklich großartig! Es gibt eine Grenze für die Verwendung?
moreirapontocom
19

Sie können einen einfachen kopflosen Browser wie PhantomJS verwenden, um die Seite abzurufen.

Sie können PhantomJS auch mit PHP verwenden.

Schauen Sie sich dieses kleine PHP-Skript an, das dies tut. Schauen Sie hier https://github.com/microweber/screen

Und hier ist die API: http://screen.microweber.com/shot.php?url=/programming/757675/website-screenshots-using-php

Boksiora
quelle
PhantomJS ist im Allgemeinen eine großartige Lösung dafür. Wenn ich es jedoch genau für diesen Zweck verwendet habe, wurden nicht alle HTML-Schnittstellenelemente ordnungsgemäß gerendert.
Ultrageek
2
screen.microweber.com/shot.php?url=https://stackoverflow.com/… ist jetzt ein 404 und fragt sich, ob die Antwort hier gelöscht werden sollte. In beiden Fällen sollte es aktualisiert werden.
Funk Forty Niner
18

Das sollte gut für dich sein:

https://wkhtmltopdf.org/

Stellen Sie sicher, dass Sie die wkhtmltoimage-Distribution herunterladen!

Christian
quelle
1
Übrigens habe ich es unter Ubuntu 10.04 einfach mit apt-get installiert. Als ich es ausführte, war es jedoch sehr, sehr langsam und das PDF-Layout war schief und keine wirklich praktikable Option. Es ist jedoch vielversprechend, KHTML auf diese Weise - eventuell - für die Bilderzeugung zu verwenden.
Volomike
@Volomike - Sie können keine besseren Ergebnisse erzielen, da bekanntlich ein standardkonformer Browser verwendet wird. Das Unternehmen, mit dem ich zusammenarbeite, hat es wiederholt in verschiedenen Projekten eingesetzt, die feinkörnige (aber kleine) CSS-Projekte erfordern.
Christian
Ich kann für die Wirksamkeit dieses Produkts bürgen. Ich entwickle Diagrammanwendungen für Regierungskunden, die über HTML / CSS bereitgestellt werden, aber als PDF archiviert werden müssen. Kein anderes Web-to-PDF-Produkt konnte unsere Diagramme annähernd so perfekt wiedergeben wie wkhtmltopdf.
Daniel Szabo
@Volomike: Die Version im Repository ist normalerweise nicht die neueste. Die Installation der neuesten stabilen Version aus dem Quellcode hat für mich viele Macken der älteren Version behoben.
Piskvor verließ das Gebäude am
10

Ja. Sie werden einige Dinge brauchen, um:

Siehe khtmld (aemon) auf * nx. Siehe Url2Jpg für Windows, aber da es sich um eine dotNet-App handelt, sollten Sie auch Url2Bmp prüfen

Beide sind Konsolentools, die Sie über Ihre Web-App verwenden können, um den Screenshot zu erhalten.

Es gibt auch Webdienste, die dies anbieten. Überprüfen Sie dies zum Beispiel.

Bearbeiten:

Dieser Link ist nützlich für.

Majkinetor
quelle
10

Es ist in Python, aber wenn Sie die Dokumentation und den Code durchgehen, können Sie genau sehen, wie dies gemacht wird. Wenn Sie Python ausführen können, ist dies eine vorgefertigte Lösung für Sie:

http://browsershots.org/

Beachten Sie, dass alles auf einem Computer für eine Plattform oder auf einem Computer mit virtuellen Maschinen auf den anderen Plattformen ausgeführt werden kann.

Kostenlos, Open Source, scrollen Sie zum Ende der Seite, um Links zu Dokumentation, Quellcode und anderen Informationen zu erhalten.

Adam Davis
quelle
24
Regel 37: Es gibt keinen Overkill. Es gibt nur "offenes Feuer" und "Zeit zum Nachladen".
Adam Davis
Der Quellcode startet weiterhin einen Desktop-Browser zum Rendern. Es ist nicht gerade threadsicher und kann zu Abstürzen führen.
Volomike
@Volomike - Stimmt, aber wenn Sie sehen möchten, wie die Seite aussieht, wenn ein Browser sie ausführt, gibt es kaum eine bessere Wahl. HTML-Rendering-Engines gehen nur mit den heutigen Javascript-schweren Seiten so weit. Das Festlegen geeigneter Ausführungsberechtigungen und Zeitüberschreitungen sollte die Schwierigkeiten und Risiken beim Ausführen eines externen Programms begrenzen.
Adam Davis
5

Ja, so ist es. Wenn Sie nur ein Bild der URL benötigen, versuchen Sie dies

<img src='http://zenithwebtechnologies.com.au/thumbnail.php?url=www.subway.com.au'>

Übergeben Sie die URL als Argument und Sie erhalten das Bild für weitere Details. Überprüfen Sie diesen Link http://zenithwebtechnologies.com.au/auto-thumbnail-generation-from-url.html

Mee
quelle
2
Der Dienst wurde gestoppt.
Mohammad Naji
5

Nun, PhantomJS ist ein Browser, der einfach auf einen Server gestellt und in PHP integriert werden kann. Sie finden den Code in WDudes. Sie enthalten viel mehr Funktionen wie das Festlegen der Bildgröße, des Caches, des Herunterladens als Datei oder der Anzeige in img src usw.

<img src=”screenshot.php?url=google.com” />

URL-Parameter

  • Breite und Höhe: screenhot.php? Url = google.com & w = 1000 & h = 800

  • Mit Zuschneiden: screenhot.php? Url = google.com & w = 1000 & h = 800 & clipw = 800 & cliph = 600

  • Deaktivieren Sie den Cache und laden Sie einen neuen Screesnhot: screenhot.php
    ? Url = google.com & cache = 0

  • So laden Sie das Bild herunter: screenhot.php? Url = google.com & download = true

Sie können das Tutorial hier sehen: Screenshot einer Website mit PHP ohne API aufnehmen

Gijo Varghese
quelle
Oh. Das tut mir leid. Sieht aus wie der Blog nicht mehr ist. Versuchen Sie github.com/graphcool/chromeless @NarendraVerma
Gijo Varghese
4

cutycapt speichert Webseiten in den meisten Bildformaten (jpg, png ..), lädt sie von Ihrer Synaptik herunter und funktioniert viel besser als wkhtmltopdf

Wolfgang
quelle
3

Ich habe mich endlich mit Microweber / Screen eingerichtet, wie von @boksiora vorgeschlagen.
Beim Versuch des genannten Links hier habe ich zunächst Folgendes bekommen:

Please download this script from here https://github.com/microweber/screen

Ich bin unter Linux. Wenn Sie es also ausführen möchten, können Sie meinen Schritt folgen an Ihre Umgebung anpassen.
Hier ist der Schritt, den ich auf meiner Shell im DOCUMENT_ROOTOrdner ausgeführt habe:

$ sudo wget https://github.com/microweber/screen/archive/master.zip
$ sudo unzip master.zip
$ sudo mv screen-master screen
$ sudo chmod +x screen/bin/phantomjs
$ sudo yum install fontconfig
$ sudo yum install freetype*
$ cd screen
$ sudo curl -sS https://getcomposer.org/installer | php
$ sudo php composer.phar update
$ cd ..
$ sudo chown -R apache screen
$ sudo chgrp -R www screen
$ sudo service httpd restart

Zeigen Sie mit Ihrem Browser auf screen/demo/shot.php?url=google.com. Wenn Sie den Screenshot sehen , sind Sie fertig. Eine Diskussion für weitere Voreinstellungen finden Sie hier und hier .

Chetabahana
quelle
3

Es gibt viele Open Source-Projekte, die Screenshots erstellen können. Zum Beispiel PhantomJS, webkit2png usw.

Das große Problem bei diesen Projekten ist, dass sie auf älteren Browsertechnologien basieren und Probleme beim Rendern vieler Websites haben, insbesondere von Websites, die in den letzten Monaten / Jahren Webfonts, Flexbox, SVG und verschiedene andere Ergänzungen der HTML5- und CSS-Spezifikation verwenden.

Ich habe einige Dienste von Drittanbietern ausprobiert und die meisten basieren auf PhantomJS, was bedeutet, dass sie auch Screenshots von schlechter Qualität produzieren. Der beste Drittanbieter-Service zum Generieren von Website-Screenshots ist urlbox.io . Es handelt sich um einen kostenpflichtigen Service, obwohl es eine kostenlose 7-Tage-Testversion gibt, um ihn zu testen, ohne sich auf einen kostenpflichtigen Plan festzulegen.

Hier ist ein Link zur Dokumentation . Im Folgenden finden Sie einfache Schritte, um sie in PHP mit Composer zum Laufen zu bringen.

// 1 . Get the urlbox/screenshots composer package (on command line):
composer require urlbox/screenshots

// 2. Set up the composer package with Urlbox API credentials:
$urlbox = UrlboxRenderer::fromCredentials('API_KEY', 'API_SECRET');

// 3. Set your options (all options such as full page/full height screenshots, retina resolution, viewport dimensions, thumbnail width etc can be set here. See the docs for more.)
$options['url'] = 'example.com';

// 4. Generate the Urlbox url
$urlboxUrl = $urlbox->generateUrl($options);
// $urlboxUrl is now 'https://api.urlbox.io/v1/API_KEY/TOKEN/png?url=example.com'

// 5. Now stick it in an img tag, when the image is loaded in browser, the API call to urlbox will be triggered and a nice PNG screenshot will be generated!
<img src="$urlboxUrl" />

Zum Beispiel hier ein Screenshot dieser Seite in voller Höhe:

https://api.urlbox.io/v1/ca482d7e-9417-4569-90fe-80f7c5e1c781/8f1666d1f4195b1cb84ffa5f992ee18992a2b35e/png?url=http%3A%2F%2Fstackwef2 2F43652083% 2343652083 & full_page = true

Ganzseitiger Screenshot der Frage stackoverflow.com powered by urlbox.io

cjroebuck
quelle
3

Es gibt viele Möglichkeiten und alle haben ihre Vor- und Nachteile. Hier ist eine Liste der Optionen, die nach Implementierungsschwierigkeiten sortiert sind.

Option 1: Verwenden Sie eine API (die einfachste)

Vorteile

  • Führen Sie Javascript aus
  • Nahezu perfektes Rendering
  • Schnell, wenn die Caching-Optionen korrekt verwendet werden
  • Die Skalierung wird von den APIs übernommen
  • Präzises Timing, Ansichtsfenster, ...
  • Meistens bieten sie einen kostenlosen Plan an

Nachteile

  • Nicht kostenlos, wenn Sie vorhaben, sie häufig zu verwenden

Option 2: Verwenden Sie eine der vielen verfügbaren Bibliotheken

Vorteile

  • Die Konvertierung ist die meiste Zeit ziemlich schnell

Nachteile

  • Schlechtes Rendering
  • Führt kein Javascript aus
  • Keine Unterstützung für aktuelle Webfunktionen (FlexBox, Advanced Selectors, Webfonts, Box Sizing, Medienabfragen, HTML5-Tags ...)
  • Manchmal nicht so einfach zu installieren
  • Kompliziert maßstabsgetreu

Option 3: Verwenden Sie PhantomJs und möglicherweise eine Wrapper-Bibliothek

Vorteile

  • Führen Sie Javascript aus
  • Ziemlich schnell

Nachteile

  • Schlechtes Rendering
  • PhantomJs ist veraltet und wird nicht mehr gewartet.
  • Keine Unterstützung für aktuelle Webfunktionen (FlexBox, Advanced Selectors, Webfonts, Box Sizing, Medienabfragen, HTML5-Tags ...)
  • Kompliziert maßstabsgetreu
  • Es ist nicht so einfach, es zum Laufen zu bringen, wenn Bilder geladen werden müssen ...

Option 4: Verwenden Sie Chrome Headless und möglicherweise eine Wrapper-Bibliothek

Vorteile

  • Führen Sie Javascript aus
  • Nahezu perfektes Rendering

Nachteile

  • Es ist nicht so einfach, genau das gewünschte Ergebnis zu erzielen:
    • Timing des Seitenladens
    • Proxy-Integration
    • Automatisches Scrollen
    • ...
  • Kompliziert maßstabsgetreu
  • Ganz langsam und noch langsamer, wenn das HTML externe Links enthält

Haftungsausschluss: Ich bin der Gründer von ApiFlash. Ich habe mein Bestes getan, um eine ehrliche und nützliche Antwort zu geben.

Timothée Jeannin
quelle
2

Ich bin unter Windows, also konnte ich die imagegrabwindow-Funktion verwenden, nachdem ich den Tipp hier von stephan gelesen hatte. Ich habe beim Zuschneiden (um den Browser-Header, die Bildlaufleisten usw. zu entfernen) und beim Ändern der Größe hinzugefügt, um ein endgültiges Bild zu erhalten. Hier ist mein Code . Hoffe das hilft jemandem.

Robert James Reese
quelle
1

webkit2html funktioniert unter Mac OS X und Linux und ist recht einfach zu installieren und zu verwenden. Siehe dieses Tutorial .

Für Windows können Sie CutyCapt verwenden , das ähnliche Funktionen bietet.

Piskvor verließ das Gebäude
quelle
2
@Smith: Als ich das letzte Mal nachgesehen habe, hat CutyCapt alle Abhängigkeiten im Installationsprogramm. Ja, Sie werden dies wahrscheinlich nicht unter einem begrenzten Konto installieren können, aber das ist das Leben. Beachten Sie, dass alle anderen Lösungen eine Art Wrapper um einen Rendering-Kern verwenden, sodass Sie sich mit ihnen an derselben Stelle befinden.
Piskvor verließ das Gebäude am
1

Ich habe Bluga benutzt . Mit der API können Sie 100 Schnappschüsse pro Monat erstellen, ohne dafür zu bezahlen. Manchmal wird jedoch mehr als 1 Guthaben für eine einzelne Seite verwendet. Ich habe gerade ein Drupal-Modul, Bluga WebThumbs , aktualisiert auf Drupal 7 aktualisiert, mit dem Sie eine Miniaturansicht in einer Vorlage oder einem Eingabefilter drucken können.

Der Hauptvorteil bei der Verwendung dieser API besteht darin, dass Sie die Browserdimensionen angeben können, falls Sie adaptives CSS verwenden. Daher verwende ich sie, um Renderings für das mobile und Tablet-Layout sowie für das reguläre Layout zu erhalten.

Es gibt API-Clients für die folgenden Sprachen:

PHP , Python , Ruby , Java , .NET C # , Perl und Bash (das Shell-Skript scheint Perl zu erfordern)

Arosboro
quelle
1

Es hängt alles davon ab, wie Sie den Screenshot aufnehmen möchten.

Sie können dies über PHP tun, indem Sie einen Webservice verwenden, um das Bild für Sie zu erhalten

grabz.it hat einen Webservice, um genau dies zu tun. Hier ist ein Artikel, der ein einfaches Beispiel für die Verwendung des Dienstes zeigt.

http://www.phpbuilder.com/articles/news-reviews/miscellaneous/capture-screenshots-in-php-with-grabzit-120524022959.html

Andrew
quelle
1

Sie können die https: //grabz.it-Lösung verwenden.

Es hat eine PHP-API, die sehr flexibel ist und auf verschiedene Arten aufgerufen werden kann, z. B. von einem Cronjob oder einer PHP-Webseite.

Um es zu implementieren, müssen Sie zuerst einen App-Schlüssel und ein Geheimnis erhalten und herunterladen das (kostenlose) SDK .

Und ein Beispiel für die Umsetzung. Zunächst Initialisierung:

include("GrabzItClient.class.php");

// Create the GrabzItClient class
// Replace "APPLICATION KEY", "APPLICATION SECRET" with the values from your account!
$grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");

Und Screenshot-Beispiel:

// To take a image screenshot
$grabzIt->URLToImage("http://www.google.com");  
// Or to take a PDF screenshot
$grabzIt->URLToPDF("http://www.google.com");
// Or to convert online videos into animated GIF's
$grabzIt->URLToAnimation("http://www.example.com/video.avi");
// Or to capture table(s)
$grabzIt->URLToTable("http://www.google.com");

Als nächstes folgt das Speichern. Sie können eine der beiden Speichermethoden verwenden, Savewenn ein öffentlich zugängliches Rückrufhandle verfügbar ist und SaveTowenn nicht. Überprüfen Sie die Dokumentation für Details .

Johnny
quelle
Wenn Sie nach ganzseitigen Screenshots suchen, benötigt dieser Anbieter ein Professional-Abonnement (170 USD / Jahr).
Chaoskreator
1

Ich habe neulich eine schnelle und schmutzige App dafür geschrieben, indem ich die Google-API verwendet habe. Mit Sicherheit Verbesserungspotenzial ...

  • Es verwendet die neueste Google API Version 5.
  • Bildgröße jetzt 500px breit
  • Unterstützt die Desktop- und Mobilansicht
  • Speichern Sie in einer Datei in einem angegebenen Ordner
  • Integrieren Sie ein rudimentäres Cache-System

Finden Sie es hier mit einer Live-Demo und Code .

Ich habe den Code hier nicht veröffentlicht, nur weil ich ihn weiter verfeinere und ihn hoffentlich, wenn ich Zeit habe, in eine richtige Klasse umwandle.

Fred
quelle
0

Ich habe page2images verwendet . Es basiert auf dem Cutycapt, der sehr schnell und stabil ist. Wenn Sie nicht zu viel Zeit mit der Leistung und Konfiguration verbringen möchten, sollten Sie diese verwenden. Wenn Sie zu ihrer Website gehen, finden Sie weitere Details und Beispiel-PHP-Code.

Chen
quelle
0

Nach vielem Surfen im Web habe ich das gefunden.

PPTRAAS > Ein kostenloses Tool zum Erfassen von Screenshots, indem Sie Ihre URL als Parameter übergeben

Sie bieten mehrere Optionen, indem Sie einfach auf ihre URL klicken.

  1. Holen Sie sich einen ganzseitigen Screenshot

    https://pptraas.com/screenshot?url= {SIE URL HIER}

  2. Holen Sie sich einen Seiten-Screenshot einer bestimmten Größe

    https://pptraas.com/screenshot?url= {YOU URL HERE} & size = 400.400

  3. Man kann die Seite sogar in pdf konvertieren

    https://pptraas.com/pdf?url= {SIE URL HIER}

Fenil Shah
quelle
Josh, als ich die Antwort hochgeladen habe, funktioniert sie gut. Ich denke, wir können nicht von dieser URL abhängig sein. Bitte finden Sie eine andere Alternative, da sie den Dienst möglicherweise
vorerst
0

Sie könnten 2 Dinge tun.

Benutze Puppenspieler

Mit dem PHP Puppeteer-Paket können Sie einen Browser starten und einen Screenshot erstellen .

Verwenden Sie eine API

Es gibt viele Screenshot-APIs. Sie können sich zum Beispiel ScreenshotAPI.net ansehen . (Haftungsausschluss Ich bin der Schöpfer dieser API)

Dirk Hoekstra
quelle
-1

Nicht direkt. Software wie Selenium verfügt über solche Funktionen und kann von PHP gesteuert werden, weist jedoch andere Abhängigkeiten auf (z. B. das Ausführen des Java-basierten Servers auf dem Computer mit dem Browser, den Sie als Screenshot erstellen möchten).

Macha
quelle
Es gibt jetzt viele PHP-Bibliotheken dafür. Nicht gerade eine 'PHP'-Bibliothek. Beinhaltet einige js Browser und Codes.
Gijo Varghese
-1

Sie können Cutycapt verwenden.

kwhtml ist veraltet und zeigt die Seite wie ein alter Browser.

mohammad inanloo
quelle
-1

Ich habe festgestellt, dass dies das beste und einfachste Tool ist: ScreenShotMachine . Es ist ein kostenpflichtiger Service, aber Sie erhalten 100 kostenlose Screenshots und können weitere 2.000 für (ungefähr) 20 US-Dollar kaufen. Es ist also ein ziemlich gutes Geschäft. Es hat eine sehr einfache Verwendung, Sie verwenden nur eine URL, also habe ich dieses kleine Skript geschrieben, um eine darauf basierende Datei zu speichern:

<?php
  $url = file_get_contents("http://api.screenshotmachine.com/?key={mykey}&url=https://stackoverflow.com&size=X");

  $file = fopen("snapshots/stack.jpg", "w+");
  fwrite($file, $url);
  fclose($file);
  die("saved file!");
?>

Sie haben eine sehr gute Dokumentation hier , so dass Sie auf jeden Fall einen Blick nehmen.

Yaakov Ainspan
quelle