Heim >Backend-Entwicklung >PHP-Tutorial >Erstellen Sie mithilfe der API-Schnittstelle für Webseiten-Screenshots automatisch Webseiten-Screenshots
Hintergrund
Kürzlich entwickle ich ein kleines Programm, das ein Hilfemodul mit einer Liste von Hilfeartikeln enthält und dessen Artikelinhalt im Rich-Text-Format bearbeitet wird durch das Website-Hintergrundformat. Angesichts der Besonderheit des Applets ist seine Unterstützung für Rich Text im HTML-Format nicht gerade freundlich.
Zuerst entwickelte jemand das wxparse-Plug-in, und später stellte WeChat die Rich-Text-Komponente bereit, aber bei beiden gab es einige Probleme.
Ideen
Nachdem die im Hintergrund bearbeiteten Artikelstile durch wxparse- oder Richtext-Komponenten angezeigt werden, gibt es einige Kompatibilitätsprobleme. Wenn wir den Inhalt des Artikels in ein Bild umwandeln und das Bild dann zur Anzeige verwenden, sollten wir in der Lage sein, einen idealeren Effekt zu erzielen.
Aber für jeden Artikel ist es zeitaufwändig und mühsam, in den Kunstbereich zu gehen, um ein Bild zu entwerfen, und es ist auch mühsam, es zu ändern.
Es wäre perfekt, wenn der Artikel, den wir im Hintergrund bearbeiten, automatisch ein Bild generieren könnte.
Lösung
Nach der Abfrage stellten wir fest, dass die ausländische Website thumb.io einen ähnlichen Dienst anbietet und Sie die API-Schnittstelle dazu verwenden können Speichern Sie die angegebene Adresse als Bild. Nach dem Test stellte sich jedoch heraus, dass das Bild nicht klar war und die Zugriffsgeschwindigkeit sehr langsam war. Dann habe ich PhantomJS selbst installiert und getestet, und der Effekt war ideal.
Screenshot der mit Phantomjs gespeicherten Baidu-Homepage
Um eine Automatisierung zu erreichen, habe ich auch eine Web-API erstellt. Screenshots können automatisch (asynchron) generiert werden, indem die URL des entsprechenden Artikels an die angegebene API gesendet wird. Die spezifische Methode besteht darin, die Anforderung in der Datenbank zu speichern, wenn eine Screenshot-Anforderung vorliegt, und dann ein Programm auf dem Server auszuführen, um die Screenshot-Vorgänge nacheinander auszuführen, und den Status der entsprechenden Anforderung nach der Erstellung des Screenshots zu ändern.
------------------------------- --- --------
API-Schnittstelle (der Inhalt in {} ist der Parameterwert)
Verwendung: Ein Screenshot ist erforderlich. Die URL wird an die Screenshot-Anforderungsschnittstelle übergeben. Nach einer gewissen Zeit (empfohlen werden 10 Sekunden) wird die Abfrageschnittstelle abgefragt. Wenn der zurückgegebene Code = 0, Status = 1 ist, speichern Sie den Thumbbush einfach lokal.
Screenshot-Anfrage generieren: http://thumb.loxn.cn/?url={URL}
Hinweis: URL-Parameter müssen vorhanden sein URL-Code eingegeben, sonst kann es zu Fehlern kommen
Beispiel: http://thumb.loxn.cn/?url=http%3a%2f%2fwww.cnblogs.com%2fdragondean%2f
Zurück : JSON-Format
Code 0 Erfolg, URL-Formatfehler, . '' Die URL existiert bereits
Fehlermeldung (nur wenn der Code nicht 0 ist , es existiert)
Task_id Aufgaben-ID, Abfragestatus Wird benötigt, wenn der geheime Schlüssel abgefragt wird (wenn der Code 0 oder 2 ist)
Wird benötigt, wenn der Status abgefragt wird (wenn der Code ist 0 oder 2)
Status Status der Aufgabe, falls vorhanden. -1 bedeutet Fehler, 0 bedeutet Verarbeitung, 1 bedeutet abgeschlossen
umher 🎜>
err_msg Fehlermeldung, nur vorhanden, wenn Status=-1Aufgabenstatus abfragen: http://thumb.loxn.cn/?a =query&task_id={TASK_ID} &key={KEY}
uigatemies werden beim Generieren einer Anfrage zurückgegeben und sind erforderlich `` eb8578633e5cb22377ee85641204494f Rückgabe: JSON Code Rückgabestatus, 0 Erfolg, 3 Aufgabe existiert nicht, 4 Abfrageschlüsselfehler Bei 0 bedeutet Status=-1 fehlgeschlagen, Status=0 bedeutet Verarbeitung, Status=1 bedeutet abgeschlossen global in mir ich in uns in uns in inroot in in entweder>> Information, existiert nur, wenn Status=-1 --------- ----------- ----Das obige ist der detaillierte Inhalt vonErstellen Sie mithilfe der API-Schnittstelle für Webseiten-Screenshots automatisch Webseiten-Screenshots. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!