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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

  

以上是关于node--http小爬虫&事件模块的主要内容,如果未能解决你的问题,请参考以下文章

python——爬虫&问题解决&思考

爬虫之selenium

爬虫系列之第1章-简介&requests模块

Node.js——NodeJs事件

爬虫框架-Scrapy 机构介绍

爬虫-解析库之re