继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

进击Node.js基础(一)_5-10 HTTP 小爬虫 代码优化

ime2016
关注TA
已关注
手记 2
粉丝 2
获赞 12

首先本人菜鸟一个,这个demo也很简单,但在实现它的时候走了很多弯路,希望把这个过程记录下来分享给刚入门的朋友们;

这个题目就是慕课网上进击Node.js基础(一)_5-10 HTTP 小爬虫

优化后的代码是这样的(scott老师的源码 请参考视频):

var http = require('http')
var cheerio = require('cheerio')
var url = 'http://www.imooc.com/learn/348'

function fliter(html){
    var $ = cheerio.load(html)
    var chapters = $('.chapter')

    for (var i = 0; i < chapters.length; i++) {
        var mainTitle = $(chapters[i]).find('strong').text()
        var content = $(chapters[i]).find('a')
        var href_attr = content.attr('href')
        console.log(mainTitle+'\n')
        for (var j = 0; j < content.length; j++) {
            console.log('  【'+$(content[j]).attr('href').substr(7)+'】'+$(content[j]).text())
        }
    }
}

http.get(url,function(res){
    var html = '' 
    res.on('data',function(data){
        html +=data
    })
    res.on('end',function(){
        fliter(html)
    })
}).on('error',function(){
    console.log('错误!!!')
})

在Nodejs中的运行效果:

图片描述

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP