直接上代码
var http = require('http'); //引用http模块
var fs = require('fs'); //引用fs模块,将得到的结果直接保存在某个文件里面
http.get('https://www.baidu.com/',function(res){ //http GET方法请求资源
//有回掉函数 参数res 响应头信息
var html = '';
res.on('data',function(data){ //绑定请求数据函数
html += data; //保存结果
})
res.on('end',function(){ //绑定请求结束方法 end
fs.writeFile('文件Path',html,function(){
console.log(''写入完成');
})
})
}).on('error',function(err){
console.log('请求出错');
})
利用简单的http和fs模块吧获取的html代码 直接写入指定的文件中。
进阶 利用 cheerio模块获取页面指定的内容
1、安装
在项目文件夹中安装cheerio模块
image.pngfunction cheerFn(data){
//得到的数据格式最终是
/*[
{
title:'', //大标题
video:[{
title:'',//小标题
id:''}
]
},{}
]*/
var $ = cheerio.load(data); //把得到的html网页 填入cheerio模块中,用法和jq一样减少了dom操作
var result = [];
for(var i=0;i<$('strong').length;i++){
//console.log($('strong').eq(i).children())
var str = '';
str = $('strong').eq(i).text().trim();
result[i] = {};
result[i].title = str.split('\n')[0];
result[i].video = [];
for(var j=0;j<$('ul.video').eq(i).find('li').length;j++){
var ss = '';
ss = $('ul.video').eq(i).find('li').eq(j).text().trim();
result[i].video[j] = {};
result[i].video[j].title = ss.split('\n')[0]+ss.split('\n')[1].trim();
result[i].video[j].id = $('ul.video').eq(i).find('li').eq(j).attr('data-media-id');
}
}
fs.writeFile('./json.txt',JSON.stringify(result),function(){
console.log('写入完成!')
})
}
这个函数在响应头结束事件中调用 参数就是前面定义的html
res.on('end',function(){
在这里调用
})
网友评论