node--http小爬虫&事件模块

//http小爬虫
var http=require('http')
var cheerio=require('cheerio')
var url='http://www.imooc.com/learn/348'
function filter(html){
    var $=cheerio.load(html);
    var chapters=$('.mod-chapters')
    var courseData=[]
    chapters.each(function(item){
        var chapter=$(this)
        var chapterTitle=chapter.find('strong').text()
        var videos=chapter.find('.video').children('li')
        var chapterData={
            chapterTitle:chapterTitle,
            videos:[]
        }
        videos.each(function(item){
            var video=$(this).find('.stydyvideo')
            var videoTitle=video.text()

            chapterData.videos.push({
                title:videoTitle,

            })
        })
        courseData.push(chapterData)
    })
  return courseData
}
http.get(url,function(res){
    var html=''
    res.on('data',function(data){
        html+=data
    })
    res.on('end',function(){
       var data=filter(html);
        console.log(data)
    })
}).on('error',function(){

})





/**
 * Created by Administrator on 2017-07-03.
 */
//事件模块小插曲   对一个事件不要超过10个监听器
var EventEmitter=require('events').EventEmitter
var life=new EventEmitter();
life.on('ddd',function(){
    console.log('55555555')
})
life.on('ddd',function(){
    console.log('6666')
})
function water(){

}
life.listeners('ddd').length//查看事件的个数
EventEmitter.listenerCount(life,'ddd')
//life.removeListener('ddd',water)//删除事件监听
life.emit('ddd')//事件触发
//删除所有的监听事件
life.removeAllListeners()

  

原文地址:https://www.cnblogs.com/liuhao-web/p/7111254.html