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

  

时间: 2024-10-29 19:05:48

node--http小爬虫&事件模块的相关文章

nodejs .http模块, cheerio模块 实现 小爬虫.

代码: 1 var http = require("http"); 2 3 var cheerio = require("cheerio"); 4 5 6 var url = 'http://www.imooc.com/learn/348'; 7 8 9 http.get(url, function(res){ 10 var html = ''; 11 12 res.on('data', function(data){ 13 html += data; 14 });

node的事件模块应用(译)

第一次接触Node.js时,就觉得他只不过是用javascript实现的服务端.但实际上他提供了许多浏览器端不具备的方法,比如EventEmitter类.我们在本文中来学习如何使用EventEmitter. EventEmitter是什么? 简单来说,使用EventEmitter,你可以监听一个事件,并且可以执行一个你绑定的回调函数.就像前端的javascript一样,你可以通过addEventListener来绑定用户的鼠标键盘交互事件,EventEmitter是基于发布订阅模式,因此我们可以

Node.js(四)【HTTP小爬虫】

HTTP源码解读 HTTP性能测试 1 var http = require('http'); 2 3 http 4 .createServer(function (request, response) { 5 response.writeHead(200, {'Content-type': 'text/plain'}); 6 response.write('Hello Nodejs'); 7 response.end(); 8 }) 9 .listen(2016); 10 11 console

HTTP小爬虫 ,nodejs学习(二)

使用nodejs抓取网页数据,这里用到cheerio,解析html十分好用,和jquery用法完全一致. 首先安装cheerio,在命令行中输入 npm install cheerio;(在nodejs根目录下输入该命令) 安装完成以后,我们来解析慕课网上http://www.imooc.com/learn/348,获取其上的课程信息. 代码如下: var http = require('http'); var cheerio = require('cheerio'); var url = 'h

用NodeJs做一个小爬虫

作者:北京起步科技前端研究员,专注分享HTML5 App快速开发工具 WeX5 的黑魔法以及相应的前端技术. 前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收集妹子想要的小东西,赚大钱的人可以用来分析微博言论与股票涨跌的关系诸如此类的,简直要上天了. 你们感受一下 点我点我: 蠢蠢欲动 抛开机器学习这种貌似很高大上的数据处理技术,单纯的做一个爬虫获取数据还是非常简单的.对于前段er们来说,生在有nodejs的年代真是不要太幸福了,下面就用nodejs来做

初学nodejs---http小爬虫

1 //HTTP小爬虫 2 //×××××类似 $.AJAX×××××× 3 4 5 var http = require('http'); //加载http模块 6 7 var cheerio = require('cheerio');//加载第三方模块 cheerio 类似JQuery 8 9 // 安装方法 npm install cheerio 10 11 12 function printCourseInfo(courseData) {//打印函数 传入获取数据 13 courseDa

http 小爬虫

初学nodejs写一个http小爬虫,爬虫就是把网页上的代码爬下来. 代码: var http = require('http') //加载http模块var url = 'http://www.imooc.com/learn/713' http.get(url,function(res){   //get去请求url,此处以慕课网为例 var html = '' res.on('data',function(data){ html += data     //请求数据赋值给前面定义的html

nodejs -- event 模块, 事件模块.

1. 注册事件 on 或者 addListener,触发事件 emit 1-1简单的使用: 1 var EventEmitter = require('events').EventEmitter; 2 3 var life = new EventEmitter(); 4 5 //求安慰: 6 7 8 function water(who){ 9 console.log('给 ' +who+ ' 倒水'); 10 } 11 //具名函数 12 life.addListener('求安慰', wat

Java豆瓣电影爬虫——小爬虫成长记(附源码)

以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候,总感觉这很黑科技.正好这次借助梳理Spring MVC的机会,想自己弄个小爬虫,简单没关系,有些小bug也无所谓,我需要的只是一个能针对某个种子网站能爬取我想要的信息就可以了.有Exception就去解决,可能是一些API使用不当,也可能是遇到了http请求状态异常,又或是数据库读写有问题,就是在这