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

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

請問為什么沒有內容出來

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

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')
?? ??? ?})
?? ?})
}

function filterChapters(html){
?? ?var $ = cheerio.load(html)

?? ?var chapters = $('.learnchapter')

//?? ?[{
//????? 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('.studyvideo')
?? ??? ??? ?var videoTitle = video.text()
?? ??? ??? ?var id = video.attr('href').split('video/')[1]

?? ??? ??? ?chapterData.videos.push({
?? ??? ??? ??? ?title:videoTitle,
?? ??? ??? ??? ?id:id
?? ??? ??? ?})
?? ??? ?})
?? ??? ?courseData.push(chapterData)
?? ?})
?? ?return courseData
}

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('獲取課程數據出錯')
?? ?})
})



正在回答

3 回答

你的代碼有問題

1.http爬蟲部分的代碼寫錯了,最后的on的位置應該是這樣的:

http.get(url,?function(res){
	var?html?=?''
	res.on('data',?function(data){
		html?+=?data
	})

	res.on('end',?function(){
		//?console.log(html)
		var?courseData?=?filterChapters(html)

		printCourseInfo(courseData)
	})
}).on('error',?function(){
	console.log('error')
})

2.爬出的結果部分類名不對,現在的imooc網站類名有更改

function?filterChapters(html){
	var?$?=?cheerio.load(html)
	//你的這個chapters錯了
	var?chapters?=?$('.chapter')
	......
}


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

橙子21 提問者

非常感謝!
2016-07-06 回復 有任何疑惑可以回復我~
var?http?=?require('http')
var?cheerio?=?require('cheerio')
var?url?=?"http://www.xianlaiwan.cn/learn/348"

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')
????????})
????})
}

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
}

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('error')
????})
})


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

又翻著看了上一期的,沒有用過http命令,容易搞不清格式,多謝

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

舉報

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

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

進入課程

請問為什么沒有內容出來

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

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

幫助反饋 APP下載

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

公眾號

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