Maison  >  Article  >  interface Web  >  La fonction crawler implémentée par node

La fonction crawler implémentée par node

不言
不言original
2018-05-05 15:44:47941parcourir

Cet article présente principalement la fonction crawler implémentée par node, et analyse les étapes et techniques de fonctionnement associées de nodejs pour implémenter la fonction crawler sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les exemples. dans cet article, décrivez l'implémentation de la fonction Crawler. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Node est un langage côté serveur, vous pouvez donc explorer le site Web comme Python. Ensuite, nous utiliserons node pour explorer le parc de blogs et obtenir. toutes les informations du chapitre.

Étape 1 : Créez le fichier d'analyse puis npm init.

Étape 2 : Créez le fichier crawl.js. Un code simple pour explorer la page entière est le suivant :

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("获取课程结果错误!");
});

Introduisez le module http, puis utilisez la requête get de l'objet http une fois exécuté, cela équivaut à ce que le serveur de nœud envoie une requête get pour demander cette page, puis la renvoie via res, où le on. L'événement de données de liaison est utilisé. Acceptant continuellement les données, nous les imprimons en arrière-plan lorsqu'elles se terminent enfin.

Ceci n'est qu'une partie de la page entière. Nous pouvons inspecter les éléments de cette page et constater qu'ils sont effectivement les mêmes

Il nous suffit d'explorer le titre du chapitre et les informations de chaque section.

Étape 3 : Présentez le module cheerio comme suit : (Installez-le simplement dans gitbash, cmd a toujours des problèmes)

cnpm install cheerio --save-dev

Ce module est introduit pour faciliter notre fonctionnement de dom, tout comme jQuery.

Étape 4 : Faites fonctionner le dom et obtenez des informations utiles.

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("爬取博客园首页失败")
});

Autrement dit, le processus ci-dessus explore le titre et l'auteur du blog.

Le résultat final en arrière-plan est le suivant :

Ceci est cohérent avec le contenu de la page d'accueil du blog :

Recommandations associées :

Le nœud implémente un serveur de ressources statiques

le nœud implémente l'authentification basée sur les jetons

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn