Verwenden von Puppeteer zum Implementieren der Screenshot-Funktion für Webseiten unter Linux (CentOS)

Verwenden von Puppeteer zum Implementieren der Screenshot-Funktion für Webseiten unter Linux (CentOS)

Bei der Installation von Puppeteer unter Linux können die folgenden Probleme auftreten. Dieser Artikel zeigt Ihnen, wie Sie aus der Patsche kommen!

> [email protected] installiere /www/node_modules/puppeteer
> Knoten install.js

FEHLER: Chromium r706915 konnte nicht heruntergeladen werden! Legen Sie die Umgebungsvariable „PUPPETEER_SKIP_CHROMIUM_DOWNLOAD“ fest, um den Download zu überspringen.
{ Fehler: EACCES: Berechtigung verweigert, mkdir '/www/node_modules/puppeteer/.local-chromium'
-- ASYNC --
bei BrowserFetcher.<anonymous> (/www/node_modules/puppeteer/lib/helper.js:111:15)
bei Objekt.<anonym> (/www/node_modules/puppeteer/install.js:62:16)
bei Module._compile (module.js:635:30)
bei Object.Module._extensions..js (module.js:646:10)
bei Module.load (module.js:554:32)
bei tryModuleLoad (module.js:497:12)
bei Function.Module._load (module.js:489:3)
bei Function.Module.runMain (module.js:676:10)
beim Start (bootstrap_node.js:187:16)
bei bootstrap_node.js:608:3
Fehlernummer: -13,
Code: "EACCES",
Systemaufruf: 'mkdir',
Pfad: '/www/node_modules/puppeteer/.local-chromium' }
npm WARN enoent ENOENT: keine solche Datei oder kein solches Verzeichnis, öffnen Sie „/www/package.json“
npm WARN www Keine Beschreibung
npm WARN www Kein Repository-Feld.
npm WARN www Keine README-Daten
npm WARN www Kein Lizenzfeld

Der Vorgang, mit dem ich Puppeteer erfolgreich installiert und tatsächlich Screenshots gemacht habe, läuft wie folgt ab:

1. Installieren Sie nodejs und npm

# Herunterladen und dekomprimieren Sie wget -c https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-x64.tar.xz
tar -xvf node-v8.9.1-linux-x64.tar.xz
# Verschieben und umbenennen (optional)
mv node-v8.9.1-linux-x64 /www/nodejs
# Erstellen Sie einen Softlink (Verknüpfung). Wenn der Name im vorherigen Schritt anders ist, passen Sie den unterstrichenen Teil dieses Schritts entsprechend der tatsächlichen Situation an. ln -s /www/nodejs/bin/node /usr/local/bin/node
ln -s /www/nodejs/bin/npm /usr/local/bin/npm

2. Installieren Sie Chromium

yum install chromium

3. Installieren Sie Puppeteer-Core (die direkte Installation von Puppeteer führt zu einem Fehler, da Chromium nicht heruntergeladen werden kann).

npm i puppeteer-core

4. Erstellen Sie ein neues a.js

const puppeteer = erforderlich('puppeteer-core');
(asynchron () => {
 const Browser = warte auf Puppeteer.launch({
 ausführbarer Pfad: „/usr/bin/chromium-browser“,
 Argumente: ["--no-sandbox"]
 });
 const page = warte auf Browser.neueSeite();
 warte auf Seite.goto('https://www.baidu.com');
 warte auf Seite.Screenshot({Pfad: 'Beispiel.png'});
 warte auf Browserschließen();
})();

Der Code in diesem Schritt kann sich von dem im Internet unterscheiden. Einer davon ist, dass der Code in require puppeteer-core statt puppeteer ist, weil wir puppeteer-core statt puppeteer installiert haben

Der andere Grund ist, dass es beim Starten zwei Parameter gibt. Der erste Parameter ist auch darauf zurückzuführen, dass wir Puppeteer nicht direkt installiert haben, sodass wir den Pfad angeben müssen. Der zweite Parameter ist auf einige Einschränkungen von Chromium zurückzuführen, und das Root-Konto muss diesen Parameter hinzufügen, um ausgeführt zu werden

5. Führen Sie a.js aus

node a.js

Nach der Ausführung können Sie ein Beispiel sehen.png

Hinweis: Wenn die Seite Chinesisch enthält, wird sie möglicherweise nicht richtig angezeigt, da keine chinesischen Schriftarten vorhanden sind. Die Lösung besteht darin, die chinesischen Schriftarten auf Ihrem Computer unter c:/windows/fonts direkt nach /usr/share/fonts/chinese auf dem Server hochzuladen (standardmäßig gibt es kein chinesisches Verzeichnis, Sie können also selbst eines erstellen). :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::

Puppeter-bezogene Dokumente https://pptr.dev/

Zusammenfassen

Oben habe ich Ihnen die Verwendung von Puppeteer unter Linux (CentOS) zur Realisierung der Screenshot-Funktion für Webseiten vorgestellt. Ich hoffe, es wird Ihnen hilfreich sein!

Das könnte Sie auch interessieren:
  • Ein verbessertes Screenshot- und Freigabetool für Linux: ScreenCloud
  • Detaillierte Screenshots der Schritte zur Installation von MySql unter Linux
  • So erstellen Sie mit PHP unter Linux Screenshots einer Website
  • Ein Tutorial zum Schreiben eines Skripts zum Teilen von Screenshots in Linux mit Python

<<:  Eine kurze Diskussion zum Implementierungsprinzip des Vue-Slots

>>:  Detaillierte Erläuterung der MySQL-Remoteverbindungsberechtigung

Artikel empfehlen

Flexibles Boxmodell von CSS und CSS3 zur Anpassung der Elementbreite (-höhe)

1. CSS realisiert eine feste Breite links und ein...

Details zur JS-Array-Deduplizierung

Inhaltsverzeichnis 1 Testfälle 2 JS-Array-Dedupli...

Ursachen und Lösungen für den MySQL-Fehler „zu viele Verbindungen“

Inhaltsverzeichnis Kurzzusammenfassung Heute Mitt...

Farbschemata für Websites Die richtigen Farben für Ihre Website auswählen

Beeinflusst Farbe die Website-Besucher? Vor einig...

Einfaches Schreiben von gespeicherten MySQL-Prozeduren und -Funktionen

Was ist eine gespeicherte Prozedur? Einfach ausge...

Drei Prinzipien effizienten Navigationsdesigns, die Webdesigner kennen müssen

Das Entwerfen der Navigation für eine Website ist...

So legen Sie Listenstilattribute in CSS fest (lesen Sie einfach diesen Artikel)

Eigenschaften des Listenstils Es gibt 2 Arten von...

MySql implementiert die Seitenabfragefunktion

Zunächst müssen wir klarstellen, warum wir pagini...

Berechtigungen für Cross-Origin-Image-Ressourcen (CORS-fähiges Image)

Das HTML-Spezifikationsdokument führt das Crossor...

Versuchen Sie Docker+Nginx, um die Single-Page-Anwendungsmethode bereitzustellen

Von der Entwicklung bis zur Bereitstellung: Mache...