crawler.js執(zhí)行不報錯,也不打印呢?
const http = require('http')
var cheerio = require('cheerio')
const url = 'http://idcbgp.cn/code/538'
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 videosTitle = video.text()
?? ??? ??? ?var id = video.arr('href').split('video/')[1]
?? ??? ??? ?chapterData.videos.push({
?? ??? ??? ??? ?title: videosTitle,
??? ??? ??? ??? ?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.title + '\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)
?? ?})
? }).on('error',function(){
? ?? ?console.log('獲取課程數據出錯')
? })
2017-04-09
?var chapters = $('.learnchapter')
var video = $(this).find('.studyvideo')
對于這兩條語句,你應當在自己電腦上查看這個網頁的相關class值,比如我的,就是var chapters = $('.chapter')和var video = $(this).find('.J-media-item')