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

没结果显示

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


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

	// [{
	// 	chapterTitle:'',
	// 	videos: [
	// 		title:'',
	// 		id:''
	// 	]
	// }]

	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)
		// console.log(courseData)
		printCourseInfo(courseData)
	})
}).on('error',function (){
	console.log('请求数据出错!')
})


正在回答

2 回答

我看了一下你的代码,好像没问题,你看是不是cheerio没有安装好啊,在问答中看到有个安装命令  npm install cheerio -g 你瞧瞧

0 回复 有任何疑惑可以回复我~

  find 中的参数是不是不对?

 var video = $(this).find('.J-media-item')


 var video = $(this).find('.studyVideo')

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(一)
  • 参与学习       219394    人
  • 解答问题       896    个

本视频教程带你揭开Node.js的面纱,带你走进一个全新世界

进入课程

没结果显示

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信