码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-07-03 16:27:51      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:this   爬虫   chapter   事件触发   apt   require   pre   events   nts   

//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()

  

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

标签:this   爬虫   chapter   事件触发   apt   require   pre   events   nts   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!