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

Interpretation des CocosCreator-Quellcodes: Engine-Start und Hauptschleife

Inhaltsverzeichnis Vorwort Vorbereitung Gehen! Te...

Beschreibung der chinesischen Sortierregeln für MySQL

Bei der Verwendung von MySQL sortieren und fragen...

Detaillierte Erklärung des Rewrite-Moduls von Nginx

Das Umschreibmodul ist das Modul ngx_http_rewrite...

Methoden und Schritte zum Erstellen eines Docker-basierten Nginx-Dateiservers

1. Erstellen Sie auf diesem Computer eine neue Ko...

Zusammenfassung des MySQL-Installationsdiagramms

Grafisches Tutorial zur Installation und Konfigur...

Zusammenfassung der CSS-Schwebeelementanalyse

Float: links/rechts/keine; 1. Gleichstufiges Schw...

Detaillierte Zusammenfassung von MySQL und verbindungsbezogenen Timeouts

MySQL und verbindungsbezogene Timeouts Vorwort: H...

Implementierungsprozessdatensatz für benutzerdefinierte Vue-Tabellenspalten

Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...

Eine "klassische" Falle der MySQL UPDATE-Anweisung

Inhaltsverzeichnis 1. Problematische SQL-Anweisun...

Detaillierte Anweisungen zur Installation von MySQL8.0.19 im CentOS7.5-Tutorial

1. Einleitung Dieser Artikel enthält keine Screen...