node初学,想爬一下图片下来,但是程序没有报错的情况下找不到问题在哪里,求解决
放一下程序结果
以下是代码段
curl.js
var http =require("http"),
https = require("https");
//to download an url
//callback with the data
function download(url, callback){
https.get(url, function(res){
var data="";
res.setEncoding("utf-8");
res.on('data', function(chunk){
data += chunk;
});
res.on("end", function(){
callback(data);
});
}).on("error", function(){
callback(null);
});
}
exports.download = download;
index.js
var cheerio = require("cheerio");
https = require("https"),
request = require("request");
fs =require("fs"),
path =require("path");
util = require('util')
var server = require("./curl");
var url = 'https://top.baidu.com/news?fr=topbuzz_b618_c9';
dir = 'D:/download';
//包装了模块就函数进行复写
server.download(url, function(data){
console.log(dir)
if(data){
//console.log(data);
var $= cheerio.load(data);
$('img').each(function(i, e){
//console.log($(e).attr('src'));
downImg($(e).attr("src"), dir)
})
}
});
//创建目录
function mkdirSync(){
fs.existsSync(dir) || fs.mkdirSync(dir);
return dir;
}
//下载图片
function downImg(url, dir){
var startTime = new Date().getTime();
url = encodeURI(url);
request(url).on('response', function(){
var endTime = new Date().getTime();
console.log("download..%s..%s",url, (endTime-startTime)/1000)
})
.pipe(fs.createWriteStream(path.join(url))
).on('error', function(){
console.log("fail to downloads");
});
}