/*
author:star
*/
var fs=require('fs');
var http=require('http');
//urls 爲url參數數組。
var urls=['http://www.baidu.com','http://www.baidu.com','http://www.baidu.com','http://www.baidu.com']
urls=urls.concat(urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls,urls)
urls.push('http://www.bfdaai.com')
var FileName='pages';//文件名
var k=6;//併發數
//創建文件夾
if(!fs.existsSync(FileName)){
fs.mkdirSync(FileName)
}
function timeFn(num){
this.num=num;
this.req();
}
timeFn.prototype.req=function(){
this.url=urls.pop();
if(this.url){
console.log('request',this.url,this.num);
this.get();
}
}
timeFn.prototype.get=function(){
var that=this;
var url=this.url.split('://')[1];
var name=url.replace(/[\:\/\\\.\?\&\=\-]/g,'_')+Math.floor(Math.random()*999)
var h=http.request({host:url,method:'get'},function(res){
var file=fs.createWriteStream(FileName+'/'+name+'.html');
res.setEncoding('utf8');
res.pipe(file)
res.on('end',function(){
that.req();
})
})
h.on('error',function(err){
console.log(url,err)//輸出錯誤
that.req();
}).end()
}
function retfn(num){
var arr=[];
for(var i=0;i<num;i++){
(function(i){
arr.push(new timeFn(i));
}(i))
}
}
retfn(k)
node http fs 實現 抓取網頁源碼並保存
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.