Node.JS 学习 来自课程进击Node.js基础(一)第5-10 Http小爬虫
标签:
JavaScript
var http = require('http'); var url = 'http://www.imooc.com/learn/348'; var cheerio = require('cheerio'); function filterChapters(html) { var data = cheerio.load(html); var chapters = data('.chapter'); // [{ // chapterTitle: '', // videos: [ // title: '', // id: '' // ] // }] var courseDate = []; chapters.each(function(item){ var chapter =data(this); var chapterTitle = chapter.find('h3').text(); var videos = chapter.find('.video').children('li'); var chapterData = { chapterTitle: chapterTitle, videos:[] } videos.each(function(item){ var video = data(this).find('.J-media-item') var videoTitle = trimLeft(video.text().split('(')[0]); var id = video.attr('href').split('video/')[1] chapterData.videos.push({ title: videoTitle, id: id }) }) courseDate.push(chapterData) }) return courseDate } //去除左边空格 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); var str = new String(s); if (whitespace.indexOf(str.charAt(0)) != -1) { var j=0, i = str.length; while (j < i && whitespace.indexOf(str.charAt(j)) != -1){ j++; } str = str.substring(j, i); } return str; } function printCourseInfo(courseDate){ courseDate.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 courseDate = filterChapters(html) printCourseInfo(courseDate); }).on('error', function () { console.log("获取课程错误") }) })
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦