請問為什么沒有內容出來
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('獲取課程數據出錯')
?? ?})
})
2016-07-06
你的代碼有問題
1.http爬蟲部分的代碼寫錯了,最后的on的位置應該是這樣的:
2.爬出的結果部分類名不對,現在的imooc網站類名有更改
2016-09-21
2016-07-06
又翻著看了上一期的,沒有用過http命令,容易搞不清格式,多謝