Mit der kontinuierlichen Weiterentwicklung der Internettechnologie sind Crawler (Web Crawler) zu einer der beliebtesten Methoden zum Crawlen von Informationen geworden. Durch die Crawler-Technologie können wir problemlos Daten im Internet abrufen und sie in vielen Bereichen wie Datenanalyse, Mining und Modellierung verwenden. Die JavaScript-Sprache erlangt aufgrund ihrer leistungsstarken Front-End-Entwicklungstools immer mehr Aufmerksamkeit. Wie schreibt man also einen Crawler mit JavaScript? Als nächstes wird es Ihnen in diesem Artikel ausführlich erklärt.
1. Was ist ein Reptil?
Ein Crawler bezeichnet ein automatisiertes Programm, das das Verhalten eines Browsers simuliert, um auf verschiedene Websites im Netzwerk zuzugreifen und Informationen daraus zu extrahieren. Ein Crawler kann eine Anfrage an eine Website generieren, eine entsprechende Antwort erhalten und dann die erforderlichen Informationen aus der Antwort extrahieren. Im Internet stellen viele Websites API-Schnittstellen bereit, aber einige Websites bieten solche Schnittstellen nicht, sodass wir Crawler verwenden müssen, um die erforderlichen Daten abzurufen.
2. Prinzip und Vorteile des JavaScript-Crawlers
Das Prinzip des JavaScript-Crawlers ist sehr einfach. Er verwendet hauptsächlich das vom Browser bereitgestellte Window-Objekt, um das Verhalten beim Anfordern einer Webseite über die XMLHttpRequest- oder Fetch-Funktion zu simulieren und verwendet dann das Document-Objekt, um den Prozess auszuführen, um den Seiten-DOM-Baum abzurufen und dann nützliche Informationen auf der Webseite zu extrahieren.
Im Vergleich zu anderen Programmiersprachen sind die Vorteile von JavaScript-Crawlern:
(1) Einfach zu erlernen und zu verwenden
Die Syntax der JavaScript-Sprache ist sehr prägnant und klar und wird häufig verwendet -End-Entwicklung. Einige seiner Methoden und Techniken sind auch beim Webcrawlen anwendbar.
(2) Möglichkeit zur Implementierung dynamischen Crawlings
Einige Websites verfügen über Anti-Crawler-Mechanismen. Bei nicht dynamischen Anfragen gibt die Seite möglicherweise eine Zugriffsverweigerungsmeldung zurück. Mithilfe von JavaScript kann das Browserverhalten simuliert werden, was das Crawlen einiger dynamischer Websites erleichtert.
(3) Breite Anwendung
JavaScript kann auf mehreren Endgeräten ausgeführt werden und bietet vielfältige Anwendungsszenarien.
3. Der Prozess der Verwendung von JavaScript zum Schreiben eines Crawlers
Um einen JavaScript-Crawler zum Abrufen von Webseitendaten zu schreiben, müssen Sie den folgenden Prozess befolgen:
Nachfolgend erläutern wir anhand eines Beispiels den oben genannten Vorgang.
4. Erfahren Sie anhand von Beispielen, wie man JavaScript-Crawler schreibt.
In unserem Beispiel verwenden wir Node.js, jQuery und cheerio. Die folgende Website wird von uns gecrawlt: http://www.example.com
Wenn Node.js nicht installiert ist, müssen Sie zuerst die neueste Version von Node.js herunterladen. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Node.js erfolgreich installiert wurde.
node --version
Bei erfolgreicher Installation wird die Versionsnummer von Node.js in der Befehlszeile angezeigt.
Erstellen Sie lokal ein neues Verzeichnis und erstellen Sie in diesem Verzeichnis mit dem Terminal eine JavaScript-Datei. Wir erstellen beispielsweise ein Verzeichnis mit dem Namen crawler und erstellen in diesem Verzeichnis eine Datei mit dem Namen crawler.js.
Wir verwenden leichtgewichtiges jQuery in Node.js anstelle von nativem js, um DOM (Dokument) zu betreiben, und verwenden das Cheerio-Modul für DOM-Operationen. Führen Sie die folgenden Befehle aus, um die jQuery-Lightweight-Bibliothek und das Cheerio-Modul zu installieren.
npm install cheerio npm install jquery
In die Datei crawler.js schreiben wir den folgenden Code.
Erstellte eine JavaScript-Datei und importierte zwei Bibliotheken, cheerio und jQuery, die es uns ermöglichen, HTML-Inhalte bequemer zu bearbeiten. Als nächstes erstellen Sie die Express-Bibliothek und bauen den Server auf. Wir rufen die Website ab und bitten das Cheerio-Modul, den HTML-Inhalt in Variablen zu laden, dann die für uns interessanten Elemente im HTML-Inhalt zu finden und sie an die Konsole auszugeben.
Der Code lautet wie folgt:
// 导入库 const cheerio = require('cheerio'); const express = require('express'); const request = require('request'); const app = express(); app.get('/', async (req, res, next) => { try { await request('http://www.example.com', (error, response, html) => { const $ = cheerio.load(html); const headings = $('h1'); res.json(headings.text()); }); } catch (err) { next(err); } }); app.listen(3000); console.log('Server running at http://127.0.0.1:3000/');
Codeanalyse:
Fordern Sie den HTML-Inhalt der Website http://www.example.com über die get-Methode der Anforderungsbibliothek an. Die Variable $ ist eine Instanz von cheerio. In diesem Beispiel verwenden Sie $()-Methoden zum Bearbeiten von DOM und Methoden zum Bearbeiten von HTML, um das H1-Tag im BODY-Tag abzurufen. Verwenden Sie die Methode res.json, um unseren HTML-Inhalt an die Konsole auszugeben.
Hinweis:
5. Zusammenfassung
In diesem Artikel werden die Verwendung von JavaScript zum Schreiben eines Crawlers sowie die Vorteile und Prinzipien vorgestellt. Der Vorteil von JavaScript-Crawlern besteht darin, dass sie einfach zu erlernen und zu verwenden sind und dynamisches Crawlen implementieren können. Beim dynamischen Website-Crawling ist die Verwendung von JavaScript aufgrund seiner plattformübergreifenden Vorteile und seiner breiten Anwendung sehr bequem und einfach. Wenn Sie Daten im Internet abrufen und diese für die Datenanalyse, das Mining, die Modellierung und andere Bereiche verwenden möchten, sind JavaScript-Crawler eine gute Wahl.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie einen Crawler mit JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!