Nodejsはウェブサイトのピクチャーを這い出す機能を実現します
1678 ワード
nodejsがWebサイトの画像を取得する機能を実装する例を説明します.以下はすべてです.
原理:
爬虫類は最も明らかなIO密集型の応用シーンで、明らかにnodeを使って、I/Oがオーバーヘッドの小さいデータマイニングを待つのが比較的に便利です
expressモジュールによるnodeサービスの構築
リクエストモジュールを使用してターゲットページのhtmlコードを取得
cheerioモジュールをダウンロードしてhtmlコードを処理します(cheerioはjQueryの文法に似ているので、使いやすくて便利です)
環境設定:
(1)各モジュールの導入
(2)送信要求
原理:
爬虫類は最も明らかな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));
})
})
})