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

每个视频后面多了几个字

为什么会有一个’开始学习‘啊

正在回答

2 回答

a里面有个button标签,隐藏的,爬下来可以看到

<button class="r moco-btn moco-btn-red preview-btn">开始学习</button>


0 回复 有任何疑惑可以回复我~
var http = require('http');
var cheerio = require('cheerio');
var url = 'http://www.imooc.com/learn/348';
var chapter,chapterTitle,videos,chapterData,video;

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

	var courseData = [];
	chapters.each(function (item) {
		chapter = $(this);
		chapterTitle = chapter.find('strong').text().trim().replace(/\s+/g,' ');
		chapterTitle = chapterTitle.split(' ')[0]+' '+chapterTitle.split(' ')[1];
		videos = chapter.find('.video').children('li');
		chapterData = {
			chapterTitle: chapterTitle,
			videos: []
		};
		videos.each(function(item) {
			video = $(this).find('.J-media-item');
			var videoTilte = video.text().replace(/[\s]/g,'').replace('开始学习', '');
			var id = video.attr('href').split('video/')[1];

			chapterData.videos.push({
				title: videoTilte,
				id: id
			})
		});

		courseData.push(chapterData);
	})

	return courseData;
}

function printCourseInfo(html) {
	var res = '';
	html.forEach(function(item) {
		res += '标题:' + item.chapterTitle + '\n';
		item.videos.forEach(function(video) {
			res += '  【' + video.id + '】' + video.title + '\n';
		})
	})

	console.log(res);
}

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('出错');
})

这是我写的代码

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

举报

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

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

进入课程

每个视频后面多了几个字

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