Heim > Web-Frontend > js-Tutorial > Die vom Knoten implementierte Crawler-Funktion

Die vom Knoten implementierte Crawler-Funktion

不言
Freigeben: 2018-05-05 15:44:47
Original
944 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die von Node implementierte Crawler-Funktion vorgestellt und die Schritte und zugehörigen Betriebstechniken von NodeJS zur Implementierung der Crawler-Funktion anhand von Beispielen analysiert

Die Beispiele Beschreiben Sie in diesem Artikel die Implementierung der Knotenfunktion. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Node ist eine serverseitige Sprache, sodass Sie die Website wie Python crawlen können. Als Nächstes verwenden wir Node, um den Blog-Park zu crawlen und abzurufen alle Kapitelinformationen.

Schritt 1: Erstellen Sie die Crawl-Datei und dann npm init.

Schritt 2: Erstellen Sie die crawl.js-Datei. Ein einfacher Code zum Crawlen der gesamten Seite lautet wie folgt:

var http = require("http");
var url = "http://www.cnblogs.com";
http.get(url, function (res) {
  var html = "";
  res.on("data", function (data) {
    html += data;
  });
  res.on("end", function () {
    console.log(html);
  });
}).on("error", function () {
  console.log("获取课程结果错误!");
});
Nach dem Login kopieren

Führen Sie das http-Modul ein und verwenden Sie dann die Get-Anfrage des http-Objekts. Das heißt, sobald es ausgeführt wird, entspricht es dem Senden einer Get-Anfrage, um diese Seite anzufordern, und der anschließenden Rückgabe über res Das On-Binding-Data-Event dient dazu, die Daten kontinuierlich zu übernehmen und am Ende im Hintergrund auszudrucken.

Dies ist nur ein Teil der gesamten Seite. Wir können die Elemente auf dieser Seite untersuchen und feststellen, dass sie tatsächlich gleich sind.

Wir müssen nur den Kapiteltitel und die Informationen von crawlen Jeder Abschnitt.

Schritt 3: Führen Sie das Cheerio-Modul wie folgt ein: (Installieren Sie es einfach in Gitbash, cmd hat immer Probleme)

cnpm install cheerio --save-dev
Nach dem Login kopieren

Dieses Modul wurde eingeführt, um uns die Bedienung von dom zu erleichtern, genau wie jQuery.

Schritt 4: Bedienen Sie den Dom und erhalten Sie nützliche Informationen.

var http = require("http");
var cheerio = require("cheerio");
var url = "http://www.cnblogs.com";
function filterData(html) {
  var $ = cheerio.load(html); 
  var items = $(".post_item");
  var result = [];
  items.each(function (item) {
    var tit = $(this).find(".titlelnk").text();
    var aut = $(this).find(".lightblue").text();
    var one = {
      title: tit,
      author: aut
    };
    result.push(one);
  });
  return result;
}
function printInfos(allInfos) {
  allInfos.forEach(function (item) {
    console.log("文章题目 " + item["title"] + '\n' + "文章作者 " + item["author"] + '\n'+ '\n');
  });
}
http.get(url, function (res) {
  var html = "";
  res.on("data", function (data) {
    html += data;
  });
  res.on("end", function (data) {
    var allInfos = filterData(html);
    printInfos(allInfos);
  });
}).on("error", function () {
  console.log("爬取博客园首页失败")
});
Nach dem Login kopieren

Das heißt, der obige Prozess crawlt den Titel und den Autor des Blogs.

Die endgültige Hintergrundausgabe lautet wie folgt:

Dies stimmt mit dem Inhalt der Blog-Homepage überein:

Verwandte Empfehlungen:

Knoten implementiert statischen Ressourcenserver

Knoten implementiert tokenbasierte Authentifizierung

Das obige ist der detaillierte Inhalt vonDie vom Knoten implementierte Crawler-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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