为了账号安全,请及时绑定邮箱和手机立即绑定

进击Node.js基础(一)网络爬虫

var http = require('http');
var cheerio = require('cheerio');
var url = 'http://www.imooc.com/video/7965';  //本网页的课程列表抓取

/*
filterChapters过滤
 */
function filterChapters(html) {
    var $ = cheerio.load(html);
    var chapters = $('.nano-content').children();
    var courseData = [];

    chapters.each(function(item) {
        var chapter = $(this);
        var chapterTitle = chapter.find('.sec-title').text();
        var videos = $(this).children('li');
        var chapterData = {
            chapterTitle: chapterTitle,
            videos: []
        };

        videos.each(function(item) {
            var video = $(this);
            videoTitle = video.find('a').text();
            videoId = video.find("a").attr('href') ? video.find("a").attr('href').split("/")[2] : ''
            chapterData.videos.push({
                title: videoTitle,
                id: videoId
            });
        });
        courseData.push(chapterData);
    });

    return courseData;
}
/*
打印内容
 */
function printCourseData(courseData) {
    courseData.forEach(function(item) {
        item.videos = item.videos.slice(1); //第一个是空的,去掉
        var chapterTitle = item.chapterTitle;
        console.log(chapterTitle + '\n');
        item.videos.forEach(function(item) {
            console.log('【' + item.title + '】,【' + item.id + '】');
        });
    });
}

http.get(url, function(res) {
    var html = '';
    res.on('data', function(data) {
        html += data;
    });

    res.on('end', function() {
        var courseData = filterChapters(html);
        printCourseData(courseData);
        console.log('it\' done!');
    })
}).on('error', function() {
    console.log('error');
});
点击查看更多内容
13人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
5
获赞与收藏
38

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消