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

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Erläuterung der Schritte für Tomcat zur Unterstützung des https-Zugriffs

So ermöglichen Sie Tomcat die Unterstützung des h...

Analyse des MySQL-Client-Installationsprozesses auf dem Mac

Versuchen Sie die Installation über Pip in einer ...

Offlineinstallation von Centos7.2 mysql5.7.18.tar.gz

Aufgrund der Netzwerkisolation kann MySQL nicht m...

Eine kurze Analyse von MySQL - MVCC

Versionskette In den Tabellen der InnoDB-Engine g...

Implementierung des Vue-Top-Tags-Browserverlaufs

Inhaltsverzeichnis Unsinn Implementierte Funktion...

Detaillierte Erklärung der Verwendung des Linux-Befehls lsof

lsof (List Open Files) ist ein Tool zum Anzeigen ...

Beispielcode zur Implementierung eines Foto-Stacking-Effekts mit CSS

Ergebnisse erzielen Schritt 1. Ursprüngliche inde...

HTML-Webseite: geordnete Liste ol und ungeordnete Liste ul

Listen zum Organisieren von Daten Nachdem die Les...

Spezifische Verwendung von GNU Parallel

Was ist das? GNU Parallel ist ein Shell-Tool zum ...