Heim >Web-Frontend >js-Tutorial >nodejs implementiert die Funktion zum Crawlen der Website images_node.js

nodejs implementiert die Funktion zum Crawlen der Website images_node.js

韦小宝
韦小宝Original
2017-12-16 09:15:532118Durchsuche

Ich werde Ihnen ein Beispiel geben, um Ihnen beizubringen, wie Sie mit nodejs die Website-Crawling-Funktion Bilder implementieren. Freunde, die interessiert sind, können es speichern.

Ich werde Ihnen anhand von Beispielen erklären, wie Sie NodeJS zum Crawlen von Website-Bildern verwenden. Das Folgende ist der vollständige Inhalt:

Prinzip:

Crawler ist am effektivsten. Für offensichtlich E/A-intensive Anwendungsszenarien wird der Knoten offensichtlich verwendet, um das Data Mining mit geringem E/A-Warteaufwand bequemer zu gestalten.

Verwenden Sie das Express-Modul, um den Knotendienst zu erstellen.

und verwenden Sie das Anforderungsmodul, um den HTML-Code der Zielseite zu erhalten

Laden Sie das Cheerio-Modul herunter, um den HTML-Code zu verarbeiten (Cheerio hat eine ähnliche Syntax wie jQuery, ist also einfach zu verwenden und bequem)

Umgebungskonfiguration:


npm install express request cheerio --save


(1) Einführung in jedes Modul


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) Senden Sie eine Anfrage

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));
    })
    
  })
})

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird meinen Freunden hilfreich sein! !

Verwandte Empfehlungen:

NodeJS Crawler Beispiel-Enzyklopädie peinlicher Dinge_node.js

NodeJs-Lösung zur Datenbank-Ausnahmebehandlung

So verwenden Sie NodeJs zur Implementierung der Chat-Funktion


Das obige ist der detaillierte Inhalt vonnodejs implementiert die Funktion zum Crawlen der Website images_node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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