Nightmare.js ist eine Bibliothek zur Automatisierung von Browsern in einer Node.js-Umgebung. Sie können verschiedene Operationen wie das Erstellen von Screenshots, das Absenden von Formularen und die Seitennavigation automatisieren. Dieser Artikel erklärt die Installationsmethode und grundlegende Verwendung von Nightmare.js im Detail.
Installation von Nightmare.js
Installieren wir zunächst Nightmare.js in Ihrem Projekt. Nachdem Sie bestätigt haben, dass Node.js und npm installiert sind, führen Sie den folgenden Befehl aus.
npm install nightmare
Dies installiert Nightmare.js in Ihrem Projekt.
Debugging
Debuggen Sie wie folgt.
set DEBUG=nightmare & node C:\document\js\nightmare-test.js
DEBUG=nightmare
Grundlegende Verwendung
Nightmare.js Ersteinrichtung
Um Nightmare.js zu verwenden, müssen Sie zunächst eine Instanz erstellen. Der folgende Code zeigt die grundlegende Ersteinrichtung für Nightmare.js.
const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });
Durch Setzen der Option { show: true } wird das Browserfenster angezeigt. Dies ist nützlich für Debugging und Tests.
Seitennavigation
Schauen wir uns an, wie man mit Nightmare.js zu einer Webseite navigiert.
nightmare
.goto('https://example.com')
.then(() => console.log('Page loaded'))
.catch(error => console.error('Failed to load the page', error));
Verwenden Sie die Methode goto, um zur angegebenen URL zu navigieren. Verarbeiten Sie, was nach dem Laden der Seite passiert, mit der Methode then und behandeln Sie Fehler mit der Methode catch.
Formulareingabe und -übermittlung
Schauen wir uns an, wie man Nightmare.js verwendet, um Formulare auszufüllen und abzusenden.
nightmare
.goto('https://example.com/login')
.type('#username', 'yourUsername')
.type('#password', 'yourPassword')
.click('#loginButton')
.wait('#dashboard')
.then(() => console.log('Login successful'))
.catch(error => console.error('Login failed', error));
Verwenden Sie die Methode type, um Text in Formulareingabefelder einzugeben, und die Methode click, um Schaltflächen zu klicken. Verwenden Sie die Methode wait, um zu warten, bis die nächste Seite geladen ist.
Screenshots erstellen
Schauen wir uns an, wie man Screenshots von Webseiten mit Nightmare.js erstellt.
nightmare
.goto('https://example.com')
.screenshot('example.png')
.then(() => console.log('Screenshot saved'))
.catch(error => console.error('Failed to take screenshot', error));
Verwenden Sie die Methode screenshot, um einen Screenshot mit dem angegebenen Dateinamen zu speichern.
Seiteninhalt abrufen
Schauen wir uns an, wie man den Inhalt einer Webseite mit Nightmare.js abruft.
nightmare
.goto('https://example.com')
.evaluate(() => document.querySelector('h1').innerText)
.then(text => console.log('Page title:', text))
.catch(error => console.error('Failed to get page content', error));
Verwenden Sie die Methode evaluate, um JavaScript im Browser auszuführen und die Ergebnisse zu erhalten.
DuckDuckGo-Beispiel
Der folgende Code führt eine Suche auf DuckDuckGo durch und ruft den ersten Link aus den Suchergebnissen ab.
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto('https://duckduckgo.com')
.type('#search_form_input_homepage', 'github nightmare')
.click('#search_button_homepage')
.wait('#zero_click_wrapper .c-info__title a')
.evaluate(function () {
return document.querySelector('#zero_click_wrapper .c-info__title a').href;
})
.end()
.then(function (result) {
console.log(result);
})
.catch(function (error) {
console.error('Search failed:', error);
});
Zusammenfassung
Nightmare.js ist ein leistungsstarkes Tool für Browser-Automatisierung in einer Node.js-Umgebung. Von grundlegenden Installationsmethoden bis zur Seitennavigation, Formulareingabe, Screenshot-Erfassung und Seiteninhalt-Abruf können Sie verschiedene Operationen automatisieren. Verwenden Sie dies, um effizientes Web-Scraping und Automatisierungsaufgaben zu erreichen.