Node.js :实现慕课网课程简易爬虫

使用cheerio模块######

npm install cheerio



CODE:####

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

function filterChapters(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 = filterChapters(html)

        printCourseInfo(courseData)
    })
}).on('error', function() {
    console.log('获取课程数据出错!')
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • cmd命令: ./ 当前目录 ../ 上一级 dir 查看当前目录 ls 查看当前目录下文件 win...
    3hours阅读 562评论 0 1
  • 目的 由于经常会阅读关于C++的博客,譬如Meeting C++!的blogroll、 reddit的r/cpp等...
    长不胖的Garfield阅读 1,271评论 0 2
  • NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用...
    yyshang阅读 421评论 0 1
  • 写在前面: 前天,(是前天吧,,?)写了一个基于http模块和cheerio模块实现的小爬虫,爬取了慕课网的一些课...
    木木口丁阅读 681评论 0 1
  • 上篇文章介绍了爬虫的基本概念和基本原理,这篇开始我们一起来看看具体如何从网页中爬取自己想要的数据。 在下面爬虫的栗...
    特慈阅读 324评论 0 0