So schreiben Sie einen Crawler mit JavaScript

WBOY
Freigeben: 2023-05-29 13:42:08
Original
1306 Leute haben es durchsucht

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

  1. Prinzip

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.

  1. Vorteile

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:

  1. Anfrage senden: Der Crawler generiert zunächst eine URL und sendet sie eine HTTP-Anfrage an diese URL, um die angeforderten Daten zu erhalten. Dies kann mit Ajax, Fetch und anderen Methoden erfolgen.
  2. HTML-Inhalt abrufen: Die Seitenressourcen wurden heruntergeladen. Zu diesem Zeitpunkt müssen wir die Daten im HTML analysieren und nach dem Parsen das DOM abrufen, damit wir nachfolgende Vorgänge für verschiedene Daten ausführen können.
  3. Daten analysieren: Verstehen Sie die Daten, die auf der Seite gecrawlt werden müssen, sowie den Speicherort und den Datentyp, an dem diese Daten auf der Seite angezeigt werden. Möglicherweise müssen Sie externe Bibliotheken wie jQuery, cheerio, htmlparser2 und andere verwenden, mit denen Seitendaten schnell analysiert werden können.
  4. Daten speichern: Sie müssen das Dateisystem verwenden, um die Informationen zu speichern, die wir heruntergeklettert sind.

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

  1. Node.js installieren

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
Nach dem Login kopieren

Bei erfolgreicher Installation wird die Versionsnummer von Node.js in der Befehlszeile angezeigt.

  1. Verzeichnisse und Dateien erstellen

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.

  1. Installieren Sie jQuery und cheerio

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 
Nach dem Login kopieren
  1. JavaScript-Crawler-Code schreiben

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/');
Nach dem Login kopieren

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:

  1. Der Website-Inhalt, den der Crawler abrufen muss, muss öffentlich sein. Wenn eine Basisauthentifizierung erforderlich ist, kann der Crawler die Daten nicht automatisch abrufen.
  2. Die Geschwindigkeit des Crawlers muss angemessen sein, und es ist am besten, nicht zu schnell zu sein, sonst könnte der Server denken, dass Sie abnormal zugreifen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!