亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

最后一節課的輸出有問題


var?http?=?require('http');
var?cheerio?=?require('cheerio');
var?url?=?'http://www.xianlaiwan.cn/learn/348';

function?filterChapters(html){
	var?$?=?cheerio.load(html);
	var?chapters?=?$('.learnchapter');
	/*
	[{
		chapterTitle:?'',
		videos:?[
			title:?'',
			id:?''
		]
	}]
	*/
	var?courseData?=?[];
	chapters.each(function(item){
		var?chapter?=?$(this);
		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('.studyvideo');
			var?video?=?chapter.find('.studyvideo');
			var?title?=?video.text();
			var?id?=?video.attr('href').split('video/')[1];

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

		courseData.push(chapterData);
	});

	return?courseData;
}

function?printCourseInto(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('data',function(data){
		var?courseData?=?filterChapters(data);
		printCourseInto(courseData);
	})
}).on('error',function(e){
	console.log("Got?error:"?+?e.message);
});


正在回答

2 回答

//適合現在慕課網的代碼,水平有限,有不足希望指點
var?http?=?require('http')
var?cheerio?=?require('cheerio')
var?url?=?'http://www.xianlaiwan.cn/learn/348/'
function?filterChapters(html){
????var?$?=cheerio.load(html)
????var?chapters?=?$('.chapter')
//??[
//??????{
//??????????chapterTitle:'';
//??????????videos:[
//??????????????title:''
//??????????????id:''
//??????????]
//??????}
//??]
//?}
????var?courseData=[]
????chapters.each(function(item){
????????$('div').remove('.chapter-content')
????????$('button').remove()
????????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().replace(/\s+/g,'?')
????????????var?id?=video.attr('href').split('video/')[1]
????????????chapterData.videos.push({
????????????????title?:?videoTitle,
????????????????id:?id
????????????})
????????})
????????courseData.push(chapterData)
????})
????return?courseData;
}
function?printCourseInfo(courseData){
????var?info?=?''
????courseData.forEach(function(item){
????????info?+=?item.chapterTitle.replace(/\s/g,'?').trim()?+?'\n'
????????item.videos.forEach(function(video){
????????????info?+=?'?【'+video.id.replace(/\s/g,'?')?+'】???'+?video.title.replace(/\s/g,'?').trim()?+'\n'
????????})?
????})
????console.log(info)
}
console.log('\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)
????????over();
????})
}).on('error',function(){
????console.log('獲取數據出錯!')
})
function?over(){
????console.log('\n?????????????????????爬蟲程序爬取結束~~~')
}


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

瀏覽器審查元素看一下,是不是類名稱換掉了。

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

舉報

0/150
提交
取消
進擊Node.js基礎(一)
  • 參與學習       219329    人
  • 解答問題       982    個

本視頻教程帶你揭開Node.js的面紗,帶你走進一個全新世界

進入課程

最后一節課的輸出有問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號