Nodejsはウェブサイトのピクチャーを這い出す機能を実現します

1678 ワード

nodejsがWebサイトの画像を取得する機能を実装する例を説明します.以下はすべてです.
原理:
爬虫類は最も明らかなIO密集型の応用シーンで、明らかにnodeを使って、I/Oがオーバーヘッドの小さいデータマイニングを待つのが比較的に便利です
expressモジュールによるnodeサービスの構築
リクエストモジュールを使用してターゲットページのhtmlコードを取得
cheerioモジュールをダウンロードしてhtmlコードを処理します(cheerioはjQueryの文法に似ているので、使いやすくて便利です)
環境設定:

npm install express request cheerio --save

(1)各モジュールの導入

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)送信要求

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