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

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

這節(jié)課的完整代碼,僅供參考(number為異步加載,所以獲取不到)

var http = require('http')

var Promise = require('bluebird')

var cheerio = require('cheerio')

var baseUrl = 'http://idcbgp.cn/learn/'

var url = 'http://idcbgp.cn/learn/348'

var videoIds = [348, 259, 197, 134, 75]


function filterChapters(html){

? ? ?var $ = cheerio.load(html);

? ? ?var chapters = $('.chapter');

? ? ?var header = $('.course-infos');

var title = $(' .pr .path span').text();

//這個(gè)人數(shù)值是瀏覽器端異步渲染的,http.get只會(huì)獲取第一次服務(wù)器返回的HTML代碼,所以這里獲取不到number

var number = parseInt($('.statics .static-item .js-learn-num').text().trim(), 10);


? ? ??

? ? ?var courseData = {

? ? title: title,

? ? number: number,

? ? videos: []

? ??

? ? ?}

? ? ?

? ? chapters.each(function(item){

? ? ? ? var chapter = $(this);

? ? ? ? //獲取章節(jié)名稱

? ? ? ? var chapterTitle = chapter.find('strong').text();

? ? ? ? //獲取視頻名稱

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

? ? ? ? //創(chuàng)建對(duì)象準(zhǔn)備保存數(shù)據(jù)

? ? ? ? var chapterData = {

? ? ? ? ? ? chapterTitle: chapterTitle,

? ? ? ? ? ? videos: []

? ? ? ? }

? ? ? ? videos.each(function(item){

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

? ? ? ? ? ? //獲取視頻標(biāo)題(去除空格)

? ? ? ? ? ? var videoTitle = video.text().replace(/(^\s+)|(\s+$)/g, "");

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


? ? ? ? ? ? chapterData.videos.push({

? ? ? ? ? ? ? ? title: videoTitle,

? ? ? ? ? ? ? ? id: id

? ? ? ? ? ? })

? ? ? ? })

? ? ? ? courseData.videos.push(chapterData);

? ? })

? ? //返回課程信息

? ? return courseData;

}


function printCourseInfo(coursesData){

coursesData.forEach(function(courseData){

//此處獲取不了人數(shù), ? ? ? ?

console.log(courseData.number + '人學(xué)過(guò)' + 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(){

? ?resolve(html);

? ?})

}).on('error',function(e){

reject(e)

? ?console.log('爬取數(shù)據(jù)失敗');

})

})

}


var fetchCourseArray = [];


videoIds.forEach(function(id){

fetchCourseArray.push(getPageAsync(baseUrl + id));

})


Promise

.all(fetchCourseArray)

.then(function(pages){

var coursesData = [];

pages.forEach(function(html){

var courses = filterChapters(html);

coursesData.push(courses);

})

coursesData.sort(function(a, b){

return a.number < b.number;

})

printCourseInfo(coursesData);

})
















正在回答

2 回答

soga,那沒有其它方法可以獲取到number么

0 回復(fù) 有任何疑惑可以回復(fù)我~

視頻的代碼 還是有漏洞

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
進(jìn)擊Node.js基礎(chǔ)(二)
  • 參與學(xué)習(xí)       76727    人
  • 解答問(wèn)題       242    個(gè)

本教程帶你攻破 Nodejs,讓 JavaScript流暢運(yùn)行在服務(wù)器端

進(jìn)入課程

這節(jié)課的完整代碼,僅供參考(number為異步加載,所以獲取不到)

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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