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

HTTP小爬虫——慕课网课程

标签:
Node.js
/**
 * Created by fu on 2017/10/2.
 */
var http = require('http')
var cheerio = require('cheerio')
var url = 'http://www.imooc.com/learn/111'

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

    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('.J-media-item')
            var videoTitle = video.text()
            var id = video.attr('href').split('video/')[1]
            chapterData.videos.push({
                title:videoTitle,
                id:id
            })
        })

        courseData.push(chapterData)
    })

    return courseData
}

function printCourseInfo(courseData) {
    courseData.forEach(function (item) {
        var chapterTitle = item.chapterTitle
        console.log(chapterTitle+'\n')
        item.videos.forEach(function (video) {
            console.log(' ['+video.id+'] ' +video.title+'\n')
        })

    })
}

http.get(url, function (res) {
    var html = ''

    res.on('data', function (data) {
        html +=data
    })

    res.on('end', function () {
       var courseData = fitlerChapters(html);

       printCourseInfo(courseData);
    })
}).on('error', function () {
    console.log('获取课程数据出错!')
})
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消