Heim  >  Artikel  >  Backend-Entwicklung  >  Erstellen Sie mithilfe der API-Schnittstelle für Webseiten-Screenshots automatisch Webseiten-Screenshots

Erstellen Sie mithilfe der API-Schnittstelle für Webseiten-Screenshots automatisch Webseiten-Screenshots

一个新手
一个新手Original
2017-09-28 10:03:026430Durchsuche

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=-1

Aufgabenstatus 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn