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

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

2018.10.5 最新代碼可用

var http = require('http')

var cheerio = require('cheerio')

var url = 'http://www.xianlaiwan.cn/learn/637'


function filterChapters(html) {

var $ = cheerio.load(html)

var chapters = $('.chapter')


var courseData = []

function trim(str) {

return str.replace(/[\r\n ]/g, "") ?//去除字符算中的空格

}

chapters.each(function (index, item) {

var chapter = $(item)

var chapterTitle = chapter.find('h3').text().trim()

var videos = chapter.find('.video').children('li')

var chapterData = {

chapterTitle: chapterTitle,

videos: []

}


// console.log(chapterTitle);

videos.each(function (index, item) {

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

var videoTitle = video.text()

videoTitle = trim(videoTitle)

var id = video.attr('href').split('video/')[1]

// console.log(videoTitle);

chapterData.videos.push({

videoTitle: 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.videoTitle + '\n')

})

})

}



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('獲取課程信息出錯!')

})


正在回答

1 回答

var?videoTitle?=?video.text().trim();

請問為什么這一句代碼,不能成功去除

videoTitle

的空格?

一定要下面的才可以呢?

var?videoTitle?=?video.text();
videoTitle?=?trim(videoTitle);


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

秋刀魚斷水 提問者

trim()只是刪除字符串開始和末尾的空格,你仔細看下我的代碼“trim(videoTitle)”,我把它寫成了一個方法
2018-10-07 回復 有任何疑惑可以回復我~
#2

封箋 回復 秋刀魚斷水 提問者

嗯嗯,我的意思是你的代碼中 ```JS var chapterTitle = chapter.find('h3').text().trim() ``` 這個里面chapter后面可以直接接trim(),但是下面的代碼 ```JS var videoTitle = video.text(); videoTitle = trim(videoTitle); ``` trim()并沒有直接接在video后面?
2018-10-09 回復 有任何疑惑可以回復我~
#3

qq_與我無關N_0 回復 封箋

1..trim()是自帶的方法,作用是去除字符串前后空格; 2..trim(videoTitle)是自己寫的方法,作用是去除字符串中所有空格,videoTitle是作為參數傳進.trim()里的; 3.另外去除字符串中所有空格,用return str.replace(/\s+/g,'')就好,樓主正則(/[\r\n ]/g,'')中\n后是有一個空格字符的,容易被忽略
2018-10-12 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

2018.10.5 最新代碼可用

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

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

幫助反饋 APP下載

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

公眾號

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