Maison >interface Web >js tutoriel >nodejs implémente la fonction d'exploration du site Web images_node.js

nodejs implémente la fonction d'exploration du site Web images_node.js

韦小宝
韦小宝original
2017-12-16 09:15:532118parcourir

Je vais vous donner un exemple pour vous apprendre à utiliser nodejs pour implémenter la fonction images d'exploration du site Web. Les amis intéressés peuvent l'enregistrer.

Je vais vous expliquer comment nodejs implémente la fonction d'exploration des images de sites Web à travers des exemples. Voici le contenu complet :

Principe :

.

Crawler est le plus efficace Pour les scénarios d'application évidents à forte intensité d'E/S, le nœud est évidemment utilisé pour rendre l'exploration de données avec une petite surcharge d'attente d'E/S plus pratique

Utilisez le module express pour créer le service de nœud

et utilisez le module de requête pour obtenir le code html de la page cible

Téléchargez le module cheerio pour traiter le code html (cheerio a une syntaxe similaire à jQuery, il est donc facile à utiliser et pratique)

Configuration de l'environnement :


npm install express request cheerio --save


(1) Introduction de chacun module


var http = require('http');
var request = require('request);
var cheerio = require('cheerio');
var fs = require('fs'); //用来操作文件
var url = 'https://movie.douban.com/cinema/nowplaying/beijing/' //定义要爬的页面


(2) Envoyer une demande

http.get(function(res){
  var html = '';
  var titles = [];
  res.setEncoding('utf-8') //防止中文乱码
  res.on('data',function(chunk){
    html += chrunk;    //监听data事件 每次取一块数据
  })
  res.on('end',function(){
    var $ = cheerio.load(html);  //获取数据完成后,解析html
    //将获取的图片存到images文件夹中
    $('.mod-bd img').each(function(index, item){
      //获取图片属性
      var imgName = $(this).parent().next().text().trimg()
      var imgfile = imgName + '.jpeg';
      var imgSrc = $(this).attr('src')
      //采用request模块,向服务器发起请求 获取图片资源
      request.head(imgSrc, function(error, res,body){
        if(error){
          console.log('失败了')
        }
      });
      //通过管道的方式用fs模块将图片写到本地的images文件下
      request(imgSrc).pipe.(fs.createWriteStream('./images/' + imgfile));
    })
    
  })
})

Ce qui précède représente tout le contenu de cet article, j'espère qu'il sera utile à mes amis ! !

Recommandations associées :

Exemple d'encyclopédie du robot NodeJS sur les choses embarrassantes_node.js

Solution de NodeJs pour la gestion des exceptions de base de données

Comment utiliser Nodejs pour implémenter la fonction de chat


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