第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

使用Node.js爬取慕課網(wǎng)多課程界面課程目錄爬蟲

標(biāo)簽:
Node.js
var http=require('http')
var cheerio=require('cheerio')
var baseUrl='http://idcbgp.cn/learn/'

var videoIds=[348,259,197,134,75]
//var url='http://119.29.109.156:8080/ServerTest01/'
//each 和 forEach区别在于each可以改变数组中的数据

function filterChapters(html){
    var $=cheerio.load(html)
    var chapters=$('.chapter')
    var title=$('.hd .l').text()
    var number=parseInt($($('.meta-value strong')[3]).text().trim(),10)

    /*courseData={
        title:title,
        number:number,
        videos:[{
            chapterTitle:''
            videos:[
                title:''
                id:''
            ]
        }]
    }*/

    var courseData={
        videos:[],
        number:number,
        title:title
    }
    //将课程名和学习人数进行写入
    courseData.title=title
    courseData.number=number

    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 videoid=video.attr('href').split('video/')[1]
            chapterData.videos.push({
                title:videoTitle,
                id:videoid
            })
        })
        courseData.videos.push(chapterData)
    })
    return courseData

}

function printCourseInfo (coursesData) {
    console.log('printCourseInfo')
    coursesData.forEach(function(courseData){
        console.log(courseData.number+' 人学过 '+courseData.title+'\n')
    })

    coursesData.forEach(function(courseData){
        console.log('### '+courseData.title+'\n')
        courseData.videos.forEach(function(item){
            var chapterTitle=item.chapterTitle

            console.log(chapterTitle+'\n')
            item.videos.forEach(function(video){
                console.log(' ['+video.id+'] '+video.title+'\n')
            })
        })
    })
}

function getPageAsync(url){
    return new Promise(function(resolve,reject){
        console.log('正在爬取 '+url)

        http.get(url,function(res){
        var html=''

        res.on('data',function(data){
            html += data
        })
        res.on('end',function(){
            console.log('爬取 '+ url+' 成功')
            resolve(html)
            /*var courseData=filterChapters(html)
            printCourseInfo(courseData)*/
        })
        }).on('error',function(e){
            reject(e)
            console.log('获取课程数据出错')
        })
    })
}

//存放所有课程的html的一个数组
var fentchCourseArray=[]

videoIds.forEach(function(id){
    fentchCourseArray.push(getPageAsync(baseUrl+id))
})

Promise
    .all(fentchCourseArray)
    .then(function(pages){
        var coursesData=[]
        pages.forEach(function(html){
            console.log("1111")
            var courses=filterChapters(html)
            coursesData.push(courses)
        })

        coursesData.sort(function(a,b){
            return a.number<b.number
        })

        printCourseInfo(coursesData)
    })
點(diǎn)擊查看更多內(nèi)容
9人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消