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

Natives JavaScript zum Erreichen von Skinning

Der spezifische Code zur Implementierung von Skin...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.19

In diesem Artikel wird das grafische Tutorial zur...

Implementierung der Header-Informationen für Nginx-Operationsantworten

Voraussetzung: Sie müssen das Modul ngx_http_head...

Eine kurze Diskussion zum Implementierungsprinzip des Vue-Slots

Inhaltsverzeichnis 1. Beispielcode 2. Sehen Sie d...

So verwenden Sie JSONP in Vue

Inhaltsverzeichnis 1. Einleitung 2. Installation ...

So verwenden Sie & und nohup im Hintergrund von Linux

Wenn wir in einem Terminal oder einer Konsole arb...

Javascript-Baummenü (11 Elemente)

1. dhtmlxBaum dHTMLxTree ist ein Tree-Menu-Steuer...

Die Verknüpfungsmethode zwischen Menü und Registerkarte von vue+iview

Vue+iview-Menü und Tab-Verknüpfung Ich entwickle ...

Reine JS-Methode zum Exportieren von Tabellen nach Excel

html <div > <button type="button&qu...

Grundlegendes Installationstutorial zum Dekomprimieren von MySQL-Paketen

Da ich auf einen neuen Computer gewechselt bin, m...

So reduzieren Sie die Speicher- und CPU-Auslastung von Webseiten

<br />Einige Webseiten sehen nicht groß aus,...